我从以下链接复制了我的代码。这是将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 + "!" );
}
}
);
});
});
}
答案 0 :(得分:0)
根据您的使用情况,检查键盘当前是否可见并避免在这种情况下调用executeScript
可能是一种可行的解决方法。
尝试使用com.ionic.keyboard插件获取cordova.plugins.Keyboard.isVisible
并在setInterval
功能中使用该插件。