我有一个cordova应用程序并使用InAppBrowser登录网站。成功登录后,我需要将响应传递给App。我正在使用executeScript()来实现,并且在Android中工作正常,而在iOS中,executeScript()的回调不会被触发。
我的加载停止事件监听器如下所示
var ref = cordova.InAppBrowser.open("XXXX.html", "_blank", 'location=yes,toolbar=yes');
function iabLoadStop(event) {
alert("EXECUTING SCRIPT")
ref.executeScript({
code: "document.body.innerHTML"
}, function(values) {
alert("SCRIPT EXECUTED")
alert(values)
});
}
我在加载停止事件中成功获得“EXECUTING SCRIPT”警报,但是支持警告“SCRIPT EXECUTED”和innerHTML的executeScript()没有被触发。
事实证明,原因是第一个alert
。此函数停止程序流,但也导致XXXX.html
执行的executeScript
中的代码停止。
所以应该避免在事件alert
和confirm
之间调用这些函数(loadstop
/ executeScript
等),至少在iOS上。还有像console.log
这样的替代品。