我正在使用PhoneGap Build版本2.9.0,带有官方PG插件ChildBrowser(v4.2.1)。
背景:我正在使用ChildBrowser进行OAuth目的 - 对第三方应用程序进行身份验证。基本上,一旦用户验证我检测到特定的URL,关闭ChildBrowser,然后继续。
然而,这只是在iPad上发生的事情(iPhone和Android工作正常): - ChildBrowser在第三方应用程序的身份验证屏幕上启动 - 用户批准我的应用程序,重定向到我的网站上的占位符页面 - ChildBrowser关闭(按预期方式),但随后立即重新打开[占位符页面] .com / index.html。 - 这占用整个屏幕,用户无法继续。
这是我的代码:
window.plugins.childBrowser.onLocationChange = function(location) {
if (location.indexOf('oauth_verifier') > -1) {
window.plugins.childBrowser.close();
// code removed - retrieve and store oauth value from url (location variable)
// code removed - get access token via 3rd party API
navigator.notification.alert('Success!');
// send user to Activity tab
window.location.href = "index.html#tabstrip-activity";
}
}
};
childBrowser.showWebPage("www.linkTo3rdPartySiteAuth.com");
我认为发生的事情是浏览器正在按需关闭,但随后它到达我将window.location设置回index.html的行,导致PhoneGap或iPad发起错误的index.html页。但是,我尝试删除更改窗口位置的那一行,但问题仍然存在。想法?
答案 0 :(得分:0)
我已经解决了这个问题:我设置窗口位置的行似乎是问题所在。我相信上次尝试删除时,PhoneGap Build没有正确更新应用程序。后来的测试虽然成功了。我仍然有点困惑为什么会发生这种情况,而不是在我有相同行为的其他地方 - 我最好的猜测是因为它属于onLocationChange方法。