【问题标题】:Android phone hardware backbutton not firing "backbutton" event, sometimesAndroid 手机硬件后退按钮有时不会触发“后退按钮”事件
【发布时间】:2017-08-01 18:51:46
【问题描述】:

我正在开发基于 phonegap(版本 6+)的混合应用程序。我最近注意到,在按下 android 移动硬件返回按钮时,phonegap "backbutton" 事件在以下情况下不会被触发:

  1. input 或 textarea 元素处于焦点且软键盘已启动: 在这种情况下,硬件后退按钮会关闭软键盘,但元素不会失去焦点,也不会触发 "backbutton" 事件
  2. 选择元素打开,在这种情况下,硬件后退按钮会导致选择元素关闭,但不会触发"backbutton" 事件并且选择元素不会触发blurfocusout活动

在谷歌上我可以看到这似乎是一个已知问题,但是,我的问题是:对于第一种情况,我可以收听窗口resize 事件的解决方法。但是对于第二种情况,即选择元素关闭,我不确定如何捕获该事件? blurfocusout 不起作用。是否有任何解决方法或解决方案?

感谢您的帮助。

【问题讨论】:

  • 你想达到什么目的?
  • @Akis 我想在选择元素失去焦点时显示一个元素

标签: jquery cordova hybrid-mobile-app phonegap


【解决方案1】:

如果您想要解决此问题的解决方案,那么您可以设置功能以检查选择框是否打开或关闭,然后如果其打开为 false,则将变量设置为 true 并关闭,然后为 false,如下所示。

//set variable global
var clickedDropdown;

$("select").bind("click", function () {
    var clickedDropdown = $(this);

    if (clickedDropdown.data('open') == false) {
        clickedDropdown.data('open', true);
        console.log(this.name + "   open");
        //Your code goes here
    } else {
        clickedDropdown.data('open', false);
        console.log(this.name + "   closed");
        //Your code goes here
    }
});

更新

$(document).ready(function(){
    setTimeout(function(){
        document.addEventListener('backbutton', function(e){
            if (clickedDropdown.data('open') == true) {
                 $( "select" ).trigger( "click" );
                //or
                //You can set blur or focusout event if dropdown already open
            } else {
                //You can set another function for backbutton pressed event
            }
        });
    },500);
});

【讨论】:

  • 谢谢,但这在我的场景中不起作用,因为选择元素是用 JQM 模拟的原生 android。所以选择元素选项是用点击打开的,但是用手机后退键关闭的。所以我猜当按下后退按钮时点击事件没有被触发。
  • 再次感谢,我会试试这个并回复你。
  • 这不起作用,因为此代码适用于后退按钮事件,但问题是在这种情况下后退按钮没有被触发,正如我在问题中所解释的那样。我需要的是一种解决方法来检测在选择元素打开时是否触发了后退按钮。
  • 为了提供更多上下文,我能够检测到软键盘打开时触发的后退按钮。因为当后退按钮被触发时,软键盘会关闭并且窗口会调整大小。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-11
  • 2017-05-09
  • 1970-01-01
  • 2015-09-25
  • 2019-02-03
相关资源
最近更新 更多