0

我正在使用带有官方 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 页面。但是,我尝试删除更改窗口位置的那条线,但问题仍然存在。想法?

4

1 回答 1

0

我已经解决了这个问题:我设置窗口位置的行似乎是问题所在。我相信上次我尝试删除它时 PhoneGap Build 没有正确更新应用程序。不过后续的测试都成功了。对于为什么会在这里而不是在我有相同行为的其他地方发生这种情况,我仍然有点困惑——我最好的猜测是因为它属于 onLocationChange 方法。

于 2013-09-05T00:21:34.760 回答