检测iOS是否正在使用webapp

时间:2013-08-01 09:11:17

标签: javascript jquery html ios browser-feature-detection

我想知道是否有可能检测到iOS用户是使用网络应用程序,还是仅仅使用safari浏览器访问正常方式。

我想要实现的原因是,当用户点击链接时,在iOS webapp上,他将被重定向到Safari浏览器。所以我使用以下解决方法让他留在webapp(阻止切换到safari浏览器)。

$( document ).on("click",".nav ul li a",
        function( event ){

        // Stop the default behavior of the browser, which
        // is to change the URL of the page.
        event.preventDefault();

        // Manually change the location of the page to stay in
        // "Standalone" mode and change the URL at the same time.
        location.href = $( event.target ).attr( "href" );

        }
    );

但我希望这种解决方法仅在用户使用webapp时发生,我希望它是webapp用户的条件。所以不在默认的safari浏览器上。

2 个答案:

答案 0 :(得分:25)

您必须使用一些javascript检测到这一点:

<script>
if (
    ("standalone" in window.navigator) &&       // Check if "standalone" property exists
    !window.navigator.standalone                // Test if using standalone navigator
    ){

    // .... code here ....
}
</script>
</head> 

可在此处找到:Determine if site is open as web app or through regular safari on ipad?

答案中使用的来源是THIS

答案 1 :(得分:8)

iOS和Chrome WebApp的行为不同,这就是我接下来的原因:

isInWebAppiOS = (window.navigator.standalone == true);
isInWebAppChrome = (window.matchMedia('(display-mode: standalone)').matches);