我正在使用带有官方 PG 插件 ChildBrowser (v4.2.1) 的 PhoneGap Build 版本 2.9.0。
背景:我将 ChildBrowser 用于 OAuth 目的 - 对 3rd 方应用程序进行身份验证。基本上,一旦用户进行身份验证,我就会检测到特定的 url,关闭 ChildBrowser,然后继续。
但是,这仅发生在 iPad 上(iPhone 和 Android 工作正常): - ChildBrowser 在 3rd 方应用程序的身份验证屏幕上启动 - 用户批准我的应用程序,被重定向到我网站上的占位符页面 - 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 页面。但是,我尝试删除更改窗口位置的那条线,但问题仍然存在。想法?