2014-01-13 36 views
5

我正在开发Phonegap应用程序,目前我正在使用InAppBrowser来显示外部页面。在一些外部页面上放置一个关闭按钮,我想关闭InAppBrowser本身。因为InAppBrowser会显示这些页面,这就是为什么它的引用不会被自己访问来关闭它,请不要建议我使用ChildBrowser插件。如何在Phonegap应用程序中关闭InAppBrowser本身?

window.close(); //Not Worked for me 
or 
iabRef.close(); //Also not Worked for me because iabRef is not accessible on InAppBrowser. It is created on Parent Window 

某些Android设备和iOS设备显示一个“完成”按钮关闭它。以及iPad也显示完成按钮。但在Android平板电脑的情况下,没有任何类型的按钮可以关闭它。

更新: -

这里是我的全码: -

var iabRef = null; 
function iabLoadStart(event) { 
} 
function iabLoadStop(event) { 
} 
function iabClose(event) { 
    iabRef.removeEventListener('loadstart', iabLoadStart);  
    iabRef.removeEventListener('loadstop', iabLoadStop); 
    iabRef.removeEventListener('exit', iabClose); 
} 
function startInAppB() { 
    var myURL=encodeURI('http://www.domain.com/some_path/mypage.html'); 
    iabRef = window.open(myURL,'_blank', 'location=yes');  
    iabRef.addEventListener('loadstart', iabLoadStart); 
    iabRef.addEventListener('loadstop', iabLoadStop); 
    iabRef.addEventListener('exit', iabClose); 
} 
+0

请出示其中u你为什么不关闭使用后退按钮从导航栏打开iInAppBrowser –

+0

代码的休息吗? –

+0

当InAppBrowser显示页面时,会出现一些链接,因此用户可以重定向到其他链接,这就是后退按钮不适合我关闭的原因。 – Shashi

回答

5

这里有一篇SO帖子,介绍如何做到这一点。

您基本上必须通过调用window.open并挂载到loadstop事件来获取对inapp浏览器的引用。在loadstop事件中,检查url是否包含预定义的路径(如mobile/close - 但可以是任何东西),然后调用close。

这里是后

https://stackoverflow.com/a/15981972/54805

5

有没有在这个博客帖子提供了解决方案: cross window communication with cordova's inappbrowser

从本质上讲,你可以使用executeScript()从父窗口重复执行InAppBrowser实例(例如,每秒一次或两次),以检查IAB中的值是否已设置。按IAB中的“关闭”按钮可以设置这样一个变量。

当父窗口发现变量已经在IAB中设置时,父窗口使用IAB对它的引用close()它。

相关问题