我有一个 cordova 应用程序并使用 InAppBrowser 登录网站。成功登录后,我需要将响应传递给应用程序。我使用executeScript() 来实现,并且在Android 中运行良好,而在iOS 中,executeScript() 的回调不会被触发。
我的Load stop事件监听器如下
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”的executeScript()并且innerHTML没有被触发。
最佳答案
事实证明,原因在于第一个 alert
。该函数停止了程序流,但也导致 XXXX.html
中的代码,由 executeScript
执行,停止。
因此应避免在事件 alert
之间调用此类函数(confirm
/loadstop
等)和executeScript
,至少在 iOS 上是这样。还有类似 console.log
的替代方案.
关于javascript - Cordova InAppBrowserexecuteScript() 未在 iOS 中触发回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47854556/