我可以打开我的窗口,并在其中执行很多操作,例如通过 Linkedin 或 Facebook 登录。但我无法关闭它以返回我的应用程序。
1/ 我尝试捕获事件来跟踪 url 并在 url 包含特定关键字时关闭窗口。但该事件从未被触发。我从来没有任何警觉。
var ref = window.open(url, '_blank', 'location=no');
ref.addEventListener('loadstart', function(event)
{
alert(event.url);
});
ref.addEventListener('loadstop', function(event)
{
alert(event.url);
});
2/ 所以我试图找到一种方法,每 n 秒从第一个窗口检查 ref.location.url 。但 ref.location.url 不存在。我没有找到从父窗口访问应用内当前 url 的方法。
3/ 我想到给 inapp 窗口命名。但是 inappbrowser 插件不允许为要打开的窗口命名。所以父窗口也无法以这种方式检查子窗口的 url。
4/ 我试图要求应用程序内的子窗口关闭:cordova 不希望 javascript 关闭当前窗口。
self.close(); => cannot
window.close(); => cannot
5/我尝试恢复到 cordova.js 2.9.0-0-g83dc4bd ,但效果不佳。
因此,我可以在我的应用程序中打开一个弹出窗口并使用第三方 Oauth,但随后我被困在这个弹出窗口中,并且无法返回到我的应用程序。
我检查了几乎所有我能在互联网上找到的东西,但我现在完全不知道该怎么做。
我使用 cordova.js 3.5 Android build ,并安装 inappbrowser
cordova plugin add org.apache.cordova.inappbrowser
一切都是标准的,cordova.js 已正确加载,并且我可以在日志中看到 InappBrowser 在调用时已正确使用。
08-08 16:20:20.594: D/InAppBrowser(8496): target = _blank
呃……帮忙?
:)