GVKun编程网logo

覆盖PhoneGap Android中的“后退”按钮(覆盖模式怎么关闭)

12

本篇文章给大家谈谈覆盖PhoneGapAndroid中的“后退”按钮,以及覆盖模式怎么关闭的知识点,同时本文还将给你拓展Android-如何覆盖“后退”按钮,使其不会完成()我的活动?、android

本篇文章给大家谈谈覆盖PhoneGap Android中的“后退”按钮,以及覆盖模式怎么关闭的知识点,同时本文还将给你拓展Android - 如何覆盖“后退”按钮,使其不会完成()我的活动?、android – EditText与软键盘和“后退”按钮、android – phonegap / jquery mobile – iframe和后退按钮、android – Phonegap ChildBrowser插件:禁用/隐藏位置栏中的URL,但不是后退/前进/退出按钮等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

覆盖PhoneGap Android中的“后退”按钮(覆盖模式怎么关闭)

覆盖PhoneGap Android中的“后退”按钮(覆盖模式怎么关闭)

我正在尝试完成多个addEventListener,但是出了点问题?

例如,如果我们在页面上有3个div,并且第一个显示在开头,则其他两个隐藏.

<div id="d1">
<a onClick="
document.addEventListener("backbutton", show_div1, false); 
$('#d1').hide();  
$('#d2').show(); 
"
</a>
</div>

<div id="d2"></div> - initially hidden
<div id="d3"></div> - initially hidden

它显示div 2,隐藏div 1并将后退按钮的侦听器设置为show_div1(),一切正常.在按下返回键时,它会警告“我应该显示#div1”,因为它应该显示(// $(‘#d1’).show();被注释)

show_div1(){
//$('#d1').show(); $('#d2').hide(); 
alert ('I should show #div1');
}

但是现在出现了问题

<div id="d2">
<a onClick="
document.removeEventListener("backbutton", show_div1, false);
document.addEventListener("backbutton", show_div2, false); 
$('#d2').hide();  
$('#d3').show(); 
"
</a>
</div>

即使未按下后退按钮,它也会立即触发“我应该显示#div2”! addEventListener就像启动的主函数show_div2()一样,而不仅仅是在该函数的后退按钮上设置侦听器.

show_div2(){
//$('#d2').show(); $('#d3').hide();
alert ('I should show #div2');
}

发生这种情况的可能原因是什么?

解决方法:

尝试这个,
准备好在设备上为此类后退按钮添加一个侦听器

var onBackButton = function(){show_div2();}; //the initial state
document.addEventListener("backbutton", onBackButton, false); 

don’t use onClick with phoneGap

使用href或ontouchend,并确保您的< >可见,因为您里面没有任何东西(css文件中的显示块)

<div id="d1">
    <a href='javascript:onDivClick(1)'></a>
    // <a ontouchend='onDivClick(1)'></a> will be better
</div>
<div id="d2">
    <a href='javascript:onDivClick(2)'></a>
</div>

在JavaScript中

function onDivClick(var case)
{
    switch(case)
    case 1:
        $('#d1').hide();  
        $('#d2').show();
        onBackButton = function(){show_div1();};
    break;
    case 2:
        $('#d2').hide();  
        $('#d1').show();
        onBackButton = function(){show_div2();};
    break;
}

Android - 如何覆盖“后退”按钮,使其不会完成()我的活动?

Android - 如何覆盖“后退”按钮,使其不会完成()我的活动?

我目前有一个活动,当它显示时,通知也会显示在通知栏中。

这样当用户按下 home 并且 Activity 被推到后台时,他们可以通过 Notification 回到 Activity。

当用户按下后退按钮时会出现问题,我的 Activity 被破坏但通知仍然存在,因为我希望用户能够按下后退但仍然能够通过通知进入
Activity。但是当一个用户尝试这个时,我得到空指针,因为它试图开始一个新的活动,而不是带回旧的活动。

所以基本上我希望后退按钮与主页按钮完全相同,这是我迄今为止尝试过的方式:


        @Override
        public boolean onKeyDown(int keyCode,KeyEvent event)  {
            if (Integer.parseInt(android.os.Build.VERSION.SDK) < 5
                    && keyCode == KeyEvent.KEYCODE_BACK
                    && event.getRepeatCount() == 0) {
                Log.d("CDA","onKeyDown Called");
                onBackPressed();
            }

            return super.onKeyDown(keyCode,event);
        }

        public void onBackPressed() {
            Log.d("CDA","onBackPressed Called");
            Intent setIntent = new Intent(Intent.ACTION_MAIN);
            setIntent.addCategory(Intent.CATEGORY_HOME);
            setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(setIntent);

            return;
        }

但是上面的代码似乎仍然允许我的 Activity 被销毁,当按下后退按钮时,如何阻止我的 Activity 被销毁?

android – EditText与软键盘和“后退”按钮

android – EditText与软键盘和“后退”按钮

当我使用“EditText”时,我有虚拟键盘.

按第一次“返回”按钮隐藏键盘.第二个按钮在我的活动中调用“onBackpressed”回调.好的但是…

我不知道如何钩住第一次新闻.一旦虚拟键盘关闭,我就需要处理输入数据.

欢迎任何想法.

谢谢.

解决方法

当使用此方法键盘消失时,您可以覆盖:
public boolean onKeyPreIme(int keyCode,KeyEvent event) {
   if (keyCode == KeyEvent.KEYCODE_BACK && 
       event.getAction() == KeyEvent.ACTION_UP) {
           // Do your thing here
           return false;
   }
   return super.dispatchKeyEvent(event);
  }

取自我的其他答案@:Android: Error popup on EditText doesn’t move down when keyboard goes away

android – phonegap / jquery mobile – iframe和后退按钮

android – phonegap / jquery mobile – iframe和后退按钮

我正在开发一个Phonegap / jQuery Mobile Android应用程序.

特定内容涉及显示我们服务器上的页面.我们使用IFrame来显示它,除了后退按钮外,所有工作都很好.如果您点击IFrame中的几个页面并按下手机的后退按钮,应用会返回页面而不是iframe中的内容,这是一个问题.

我猜这个解决这个问题真的很棘手,但是有没有人有想法或替代方法来显示使用后退按钮的外部网站?

解决方法

您可能需要覆盖默认的onBack方法,并提供自己的方法. 您需要弄清楚如何以编程方式模拟iFrame中的返回

android – Phonegap ChildBrowser插件:禁用/隐藏位置栏中的URL,但不是后退/前进/退出按钮

android – Phonegap ChildBrowser插件:禁用/隐藏位置栏中的URL,但不是后退/前进/退出按钮

有没有办法隐藏或禁用位置栏中的URL字段?在我的情况下,设备是作为信息亭浏览器运行的平板电脑,因此只允许一个URL.

我通过将Childbrowser.java中的代码更改为来修复此问题

private void navigate(String url) {
    InputMethodManager imm = (InputMethodManager)this.ctx.getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(edittext.getwindowToken(),0);
    if (!url.startsWith("http")) {
        this.webview.loadUrl("http://" + url);
    }
    this.webview.loadUrl("http://www.my-only-allowed-site.example.org");
    this.webview.requestFocus();
}

这很好用,但不是很好.您仍然可以看到该网址.我希望有这些可能的解决方案:
1)完全隐藏URL字段
2)单击URL字段时隐藏软键盘
3)将URL字体颜色设置为黑色

任何的想法?
提前致谢

最佳答案
如果您修改插件的源代码,则可以通过修改插件的源代码来隐藏url字段和关闭按钮,并注释掉以下行:

toolbar.addView(back);       //shows the back button
toolbar.addView(forward);    //shows the forward button
//toolbar.addView(edittext); //shows the URL - comment this line out to hide the URL
toolbar.addView(close);      //shows the close button

编辑:哎呀,我刚从你的评论中看到你以同样的方式想出来了!

我们今天的关于覆盖PhoneGap Android中的“后退”按钮覆盖模式怎么关闭的分享就到这里,谢谢您的阅读,如果想了解更多关于Android - 如何覆盖“后退”按钮,使其不会完成()我的活动?、android – EditText与软键盘和“后退”按钮、android – phonegap / jquery mobile – iframe和后退按钮、android – Phonegap ChildBrowser插件:禁用/隐藏位置栏中的URL,但不是后退/前进/退出按钮的相关信息,可以在本站进行搜索。

本文标签: