window.close等效于Phonegap与InAppBrowser

Hol*_*dad 16 javascript android cordova

我打开一个新页面window.open("apphelp.html", "_blank", "location=no"),所以它向我显示了一个带有我页面的新窗口.在本页的最后,我想放一个"关闭按钮",这样用户就可以回到他来自的地方.我试过window.close()但它没有用.任何消化?

小智 45

我使用了一种解决方法...因为inAppBrowser只能通过后退按钮或通过javascript关闭.我在服务器端显示一个关闭按钮,该按钮将更改当前URL以及事件'loadstop',以便使用.close()方法,这样只关闭子浏览器,您的应用程序将保持相同的状态.

例如,我的服务器显示一个带有关闭按钮的网页,如下所示:

<a href="/mobile/close">Close</a>
Run Code Online (Sandbox Code Playgroud)

在我的客户端javascript(Phonegap应用程序):

var ref = window.open(encodeURI(url), '_blank', options);
ref.addEventListener('loadstop', function(event) {        
    if (event.url.match("mobile/close")) {
        ref.close();
    }
});
Run Code Online (Sandbox Code Playgroud)

  • 某处有更清晰的例子吗?或者,另一种方法?我不能让这个工作.例如,该代码究竟在哪里进入PhoneGap?你需要有一个被称为真实的页面(不是"移动/关闭")吗? (4认同)

小智 6

我转换为多平台支持,如下所示:

在第三页html和js

closeBrowser(){
    if(history.length==1){
        window.open('mobile/close');
    }else{
        history.back();
    }
}



<a href="javascript:;" onclick="closeBrowser()">Close</a>
Run Code Online (Sandbox Code Playgroud)

在我的客户端javascript(Phonegap应用程序):

var ref = window.open(encodeURI(url), '_blank','location=no');
 ref.addEventListener('loadstart', function(event) {
     if (event.url.match("mobile/close")) {
         ref.close();
     }
 }); 
Run Code Online (Sandbox Code Playgroud)

谢谢一楼!