1

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

我的配置:

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

这是我使用的代码片段:

// 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事件不会触发。我也试过loadstartand loaderror,没有一个会着火。更奇怪的是,setTimeout test控制台输出中只出现一次而不是两次。我的代码有问题吗?

4

4 回答 4

1

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

于 2013-11-08T06:54:48.570 回答
1

我在 Android 上的 PhoneGap 3.0 和 3.1 都遇到了类似的问题,恢复到 PhoneGap 2.9 使这些 InAppBrowser 事件再次触发。

于 2013-12-01T04:16:59.327 回答
0

上一个 phonegap/cordova 版本 3.1.0 似乎有问题。

https://groups.google.com/forum/#!topic/phonegap/e5_5unC2fYs

尝试旧版本。

于 2013-11-06T07:51:39.523 回答
0

这个问题发生在我身上,我做了这些步骤来解决它:

  • 将您的 Phonegap 版本升级到 3.1
  • 创建一个新项目
  • 添加您的平台,然后添加您的插件
  • 再次将您的代码复制回 www

这应该可以解决您的问题

于 2013-11-06T08:53:39.990 回答