我使用PhoneGap Build将AngularJS项目打包为移动应用程序,它使用InAppBrowser打开Facebook / Twitter OAuth页面。
我的配置:
以下是我使用的代码段:
// 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
事件不会触发。我还尝试了loadstart
和loaderror
,但没有一个发射。更奇怪的是,setTimeout test
只出现在控制台输出中一次而不是两次。我的代码有什么问题吗?
答案 0 :(得分:1)
经过一些重构和对应用程序的更改后,问题神秘地消失了。不完全确定,但我认为这是因为页面中的其他一些脚本与cordova.js冲突。
答案 1 :(得分:1)
我在Android上遇到类似问题的PhoneGap 3.0和3.1,恢复到PhoneGap 2.9使这些InAppBrowser事件再次发生火灾。
答案 2 :(得分:0)
最后一个phonegap / cordova版本3.1.0似乎有问题。
https://groups.google.com/forum/#!topic/phonegap/e5_5unC2fYs
尝试旧版本。
答案 3 :(得分:0)
这个问题发生在我身上,我做了这些步骤来解决它:
这应该可以解决你的问题