javascript - InAppBrowser (PhoneGap Build 3.1.0) 事件不会在 Android 2.3 上触发

标签 javascript android cordova phonegap-build inappbrowser

我正在使用 PhoneGap Build 将 AngularJS 项目包装为移动应用程序,它使用 InAppBrowser 打开 Facebook/Twitter OAuth 页面。

我的配置:

  • Angular 1.0.8
  • PhoneGap Build 上的 PhoneGap 3.1.0
  • InAppBrowser 0.2.3
  • 在启用和禁用水合的情况下进行了测试,结果相同

这是我使用的代码 fragment :

// This part code is called from click handler of a button,
// this is the only place that used the PhoneGap API.
var ipwin; // Used in somewhere else
document.addEventListener("deviceready", function() {
    ipwin = $window.open("some url", "_blank");
    $(ipwin).on("loadstop", function(e) {
        var url = e.originalEvent.url;
        console.log("loadstop: " + url);
        // snipped
    });
    // Below are testing code added while debugging
    var test = function() {
        console.log("setTimeout test");
    };
    setTimeout(test, 2000);
    test();
}, false);

这在 Android 4.0 上运行良好,但在 Android 2.3 上 loadstop 事件不会触发。我还尝试了 loadstartloaderror,它们都没有触发。更奇怪的是,setTimeout test 只在控制台输出中出现一次而不是两次。我的代码有什么问题吗?

最佳答案

在对应用程序进行一些重构和更改后,问题神秘地消失了。不完全确定,但我认为这是因为页面中的一些其他脚本与 cordova.js 冲突。

关于javascript - InAppBrowser (PhoneGap Build 3.1.0) 事件不会在 Android 2.3 上触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19785517/

相关文章:

php - 在表中显示客户端临时数据

javascript - jQuery 和 CSS 下拉菜单无法正确堆叠和定位

android - 处理 3D "scene"或屏幕到 3D 坐标中的触摸事件

java - 如何在android-java中解析xml?

android - Google Map V2 - EXTERNAL_STORAGE 权限对于 Android 6.0 以上版本是可选的吗?

cordova - Adobe Analytics Phonegap 插件

javascript - 当其中一个条件是 promise 而另一个不是时,是否有惯用的方式在 JavaScript 中表达 "if (c1 || c2)"?

C 语言的 Javascript 等效项(*、f、-> 等)

javascript - 使用媒体插件在 Android 中使用 Cordova/PhoneGap 播放本地音频

android - navigator.camera.getPicture 来自图库错误 "Unable to create bitmap"