Android InAppBrowser虚拟键盘在executeScript()上关闭。 [PhoneGap的]

时间:2015-02-18 06:56:44

标签: android cordova

我从以下链接复制了我的代码。这是将InAppBrowser中的数据传递回应用程序的解决方法。

blogs.telerik.com/appbuilder/posts/13-12-23/cross-window-communication-with-cordova's-inappbrowser

问题是每次执行()后键盘都会消失。

此问题状态为"无法修复"。所以我想知道是否有替代解决方案。我只看到对KitKat用户的引用,但这只是一个有限的数量。

https://issues.apache.org/jira/browse/CB-5449

建议?

    setName: function() {
        var win = window.open( "http://jsfiddle.net/tj_vantoll/K2yqc/show", "_blank",
          "EnableViewPortScale=yes" );

        win.addEventListener( "loadstop", function() {
            win.executeScript({ code: "localStorage.setItem( 'name', '' );" });
            var loop = setInterval(function() {
                win.executeScript(
                    {
                        code: "localStorage.getItem( 'name' )"
                    },
                    function( values ) {
                        var name = values[ 0 ];
                        if ( name ) {
                            clearInterval( loop );
                            win.close();
                            $( "h1" ).html( "Welcome " + name + "!" );
                        }
                    }
                );
            });
        });
    }

1 个答案:

答案 0 :(得分:0)

根据您的使用情况,检查键盘当前是否可见并避免在这种情况下调用executeScript可能是一种可行的解决方法。

尝试使用com.ionic.keyboard插件获取cordova.plugins.Keyboard.isVisible并在setInterval功能中使用该插件。