PhoneGap在iPad上构建ChildBrowser插件问题 - 关闭后重新打开

时间:2013-08-30 22:54:27

标签: javascript phonegap-plugins phonegap-build childbrowser

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

1 个答案:

答案 0 :(得分:0)

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