Cordova InAppBrowser executeScript()不会在iOS中触发回调

时间:2017-12-17 11:20:03

标签: javascript ios cordova

我有一个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)
    });
}

我得到"执行脚本"在加载停止事件上成功发出警报,但是支持警报的执行脚本()#14; SCRIPT EXECUTED"并且innerHTML没有被解雇。

1 个答案:

答案 0 :(得分:0)

事实证明原因是第一个alert。此函数会停止programm-flow,但也会导致由XXXX.html执行的executeScript内的代码停止。

因此,应该避免在事件alertconfirm之间调用此类函数(loadstop / executeScript等),至少在iOS上是这样。还有其他选择,例如console.log