【js】携帯ブラウザ側がアプリを呼び起こし、アプリなしでアプリをダウンロードする方法
4960 ワード
この機能の役割:
1.一般の会社は自分のappを持っていますが、appは絶えず新しいユーザーが押し寄せてこそ、運営を続けることができ、良い収入を達成することができます.このような方法で新しいユーザーを導入する必要があります.
2.一部のコンテンツは、Webページでの体験が悪いか、app内で実現する必要がある機能がある場合は、ユーザーをappに導入する必要があります.appを開き、対応するページに自動的にジャンプします.
まず、この方法はモバイル端末h 5ページにのみ適用され、一般的なスマートマシンでも使用可能である.ここではes 5のコードパターンを使用しているので、分かりやすいです.
ニーズがわかったら、どのように実現するかを見てみましょう.
1.まず、UAで現在のブラウザUAを判断し、大文字にします.それぞれアンドロイドとios機種に対して2つの異なる処理を行うために使用されます.
2.UAで判断したアンドロイドかios機種かによって、別々に処理します.
アンドロイドデバイス:
iframeを隠すことで実現します.iframeでプロトコル起動アドレスを要求し、iframeを作成するには時間がかかり、少し遅延し、iframeをdomに追加し、要求を生成します.
appがインストールされている場合、ブラウザはプロンプトボックスをポップアップし、ユーザーにappを起動するかどうかを尋ねます.
インストールされていない場合は、ブラウザが1秒待ってからダウンロードします.
iframeを使用するのは、locationジャンプ後、jsリクエストが中断しないように、空白ページにジャンプします.
コードのデータnow()-t<1200、だから1200だけで、実は1つの推定値で、大部分のすでにインストールしたappを解決するために、1秒後にやはりジャンプしてダウンロードします.アプリを開いた瞬間、ブラウザがjsの実行をカードして遅延時間が長くなる可能性があります.1200 msを超えるとダウンロードしなくてもいいです.
IOSデバイス:
まず、iosブラウザはiframeの再使用をサポートしていないので、上記の方法はiosには向いていません.
したがって,ここではlocation方式しか採用できない.
appがインストールされている場合、iosブラウザはappプロトコルを開く前にボックスをポップアップし、開くかどうかをプロンプトします.
インストールされていない場合は、このプロンプトはポップアップされません.
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);
}