【js】携帯ブラウザ側がアプリを呼び起こし、アプリなしでアプリをダウンロードする方法

4960 ワード

この機能の役割:
1.一般の会社は自分のappを持っていますが、appは絶えず新しいユーザーが押し寄せてこそ、運営を続けることができ、良い収入を達成することができます.このような方法で新しいユーザーを導入する必要があります.
2.一部のコンテンツは、Webページでの体験が悪いか、app内で実現する必要がある機能がある場合は、ユーザーをappに導入する必要があります.appを開き、対応するページに自動的にジャンプします.
 
まず、この方法はモバイル端末h 5ページにのみ適用され、一般的なスマートマシンでも使用可能である.ここではes 5のコードパターンを使用しているので、分かりやすいです.
ニーズがわかったら、どのように実現するかを見てみましょう.
1.まず、UAで現在のブラウザUAを判断し、大文字にします.それぞれアンドロイドとios機種に対して2つの異なる処理を行うために使用されます.
var UA=navigator.userAgent.toUpperCase();

2.UAで判断したアンドロイドかios機種かによって、別々に処理します.
アンドロイドデバイス:
iframeを隠すことで実現します.iframeでプロトコル起動アドレスを要求し、iframeを作成するには時間がかかり、少し遅延し、iframeをdomに追加し、要求を生成します.
appがインストールされている場合、ブラウザはプロンプトボックスをポップアップし、ユーザーにappを起動するかどうかを尋ねます.
インストールされていない場合は、ブラウザが1秒待ってからダウンロードします.
iframeを使用するのは、locationジャンプ後、jsリクエストが中断しないように、空白ページにジャンプします.
コードのデータnow()-t<1200、だから1200だけで、実は1つの推定値で、大部分のすでにインストールしたappを解決するために、1秒後にやはりジャンプしてダウンロードします.アプリを開いた瞬間、ブラウザがjsの実行をカードして遅延時間が長くなる可能性があります.1200 msを超えるとダウンロードしなくてもいいです.
//        (     、UA   、QQ    )
if(UA.indexOf("ANDROID")!=-1){
    //  iframe
    var ifr=document.createElement("iframe");
    //iframe   app         
    ifr.src="cmread://cmread.com/client?url=wap.cmread.com/rbc/402310056/index.htm";//        
    ifr.style.display="none";//  
    var t=Date.now();//      
    //    iframe     app    app
    setTimeout(function(){
        document.body.appendChild(ifr);
    },96);
    //       1s   ,          app。       
    setTimeout(function(){
        if(Date.now() - t < 1200){
            document.body.appendChild(ifr);
            location.href="http://wap.cmread.com/r/p/pg/212/CMREADBC_Android/CMREADBC_Android.apk";//      
        }
    },1001);
}

IOSデバイス:
まず、iosブラウザはiframeの再使用をサポートしていないので、上記の方法はiosには向いていません.
したがって,ここではlocation方式しか採用できない.
appがインストールされている場合、iosブラウザはappプロトコルを開く前にボックスをポップアップし、開くかどうかをプロンプトします.
インストールされていない場合は、このプロンプトはポップアップされません.
//   ios   (safari、UA   、QQ    )
else if(UA.indexOf("IOS")!=-1 || UA.indexOf("IPHONE")!=-1){
    var t=Date.now();//      
    //        app    
    setTimeout(function(){
        location.href='cmread://cmread.com/clientjson={"activity":{"url":"http://wap.cmread.com/rbc/402310056/index.htm"}}&contentId=1004';//ios      
    },96);
    //       1s   ,          app。       
    setTimeout(function(){
        if(Date.now() - t < 1200){
            location.href="https://itunes.apple.com/cn/app/he-yue-du/id863837323?mt=8&uo=4&at=10lM6r";//ios    
        }
    },1001);
}