如何退出全屏Web应用程序

Mik*_*012 20 javascript iphone android

我们正在努力让我们的网络应用程序作为全屏网络应用程序运行.我使用这些元标记让它工作:

    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="default">
    <meta name="apple-mobile-web-app-title" content="Full Screen">
Run Code Online (Sandbox Code Playgroud)

因此,现在当您从iPhone或Android设备上的主屏幕启动Web应用程序时,它将全屏启动(没有浏览器控件).

现在我们需要一种允许用户退出的方法,我希望创建一个具有退出按钮的菜单但是使用window.close()在chrome中给出了以下错误:

Scripts may close only the windows that were opened by it.
Run Code Online (Sandbox Code Playgroud)

处理这个问题的正确方法是什么?

mic*_*ico 6

关闭全屏模式的一种方法是使用以下脚本:

 function exitFullScreen(element) { 
        var requestMethod = element.exitFullscreen ||
                                                  element.mozCancelFullScreen || 
                                                  element.webkitExitFullscreen || 
                                                  element.msExitFullscreen; 
         if (requestMethod) { 
               requestMethod.call(element); 
         } else { 
               console.log("Oops. Request method false."); 
          } 
     }
Run Code Online (Sandbox Code Playgroud)

然后把它称为:

       var $smallscreenButton = $("#smallscreen-button"); 
       $smallscreenButton.on("click", function() { 
                    var elem = document;
                    exitFullScreen(elem); 
        });
Run Code Online (Sandbox Code Playgroud)

你用window.close()分阶段的错误是你应该用window.open()在同一个javascript中打开窗口然后它应该已经正确关闭了.你不能用javascript关闭随机窗口,这就是为什么你不能先打开而不打开关闭.

所以,似乎:

 var myWindow = window.open();
 myWindow.close(); // this works.
Run Code Online (Sandbox Code Playgroud)

资料来源:

[1] 我们如何以编程方式在javascript中进入和退出全屏模式?

[2] window.close()不起作用 - 脚本可能只关闭由它打开的窗口