我有一个cordova应用,并使用InAppBrowser登录网站。成功登录后,我需要将响应传递给应用程序。我正在使用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执行的代码停止。

因此,至少在iOS上,应避免在事件alertconfirm之间调用此类函数(loadstop / executeScript等)。有类似console.log的替代方法。

关于javascript - Cordova InAppBrowser executeScript()在iOS中未触发回调,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47854556/

10-12 03:38