18

iOS ユーザーが webapp を使用しているか、Safari ブラウザーで通常の方法でアクセスしているかを検出できるかどうか疑問に思っていました。

私が達成したい理由は、ユーザーがリンクをクリックすると、iOS webapp で Safari ブラウザーにリダイレクトされるためです。そのため、次の回避策を使用して、彼を webapp にとどまらせています (サファリ ブラウザへの切り替えを防ぎます)。

$( 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 ユーザーに対しては条件付きにしたいと考えています。したがって、デフォルトのサファリブラウザではありません。

4

2 に答える 2

29

javascript を使用してこれを検出する必要があります。

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

    // Web page is loaded via app mode (full-screen mode)
    // (window.navigator.standalone is TRUE if user accesses website via App Mode)

} else {

    // Web page is loaded via standard Safari mode
    // (window.navigator.standalone is FALSE if user accesses website in standard safari)
}
</script>
</head> 

一部のブラウザーにはプロパティがなく、それらのブラウザーでコードがクラッシュするのを避けるため、追加のチェック"standalone" in window.navigatorが必要にstandaloneなります。

于 2013-08-01T09:19:00.847 に答える