【发布时间】:2018-08-27 15:53:13
【问题描述】:
(这是一个 phonegap 应用,适用于 iOS 和 Android,使用 JS/HTML/CSS)
我使用类选择器“external”打开了我想使用 inappbrowser 的链接。所以我有下面的代码来打开这些链接:
$("body").on("click", "a.external", function(){
var thisHref = $(this).attr("href");
appBrowser = cordova.InAppBrowser.open(thisHref, '_blank', 'location=no, zoom=no');
appBrowser.addEventListener('loadstart', function(event) {
if (event.url == "XXXXX") { appBrowser.close(); }
});
在外部 URL 本身,我设置了链接到“XXXXX”的链接,该链接应该关闭 inAppBrowser。在 Phonegap 桌面模拟器上一切都 100% 运行,但是当我在实际设备上安装 .apk 或 .ipa 文件时,除了应用程序中的第一次初始点击外,不会触发 loadstart。
这让我相信这是一个范围问题,因为看起来只有在单击 a.external 后直接发生加载启动时,侦听器才会启动。 (P.S. appBrowser 是全局定义的 [var appBrowser; 在顶部])。
我不确定如何安排代码以使侦听器连接起来,并在整个过程中继续工作。我尝试将 addEventListener 单独放置在 deviceready 函数中,或者将整个事物放置在 deviceready 中(均无效)。
所以我希望这里缺少一些简单的东西,这确实是一个范围问题。奇怪的是,它在模拟器上按原样工作,但仅在第一次单击设备本身时才起作用。
谢谢!
【问题讨论】:
标签: javascript android jquery phonegap inappbrowser