アプリがインストールされていないときの処理

アプリがインストールされていないときの処理

URLスキームは便利だけど
アプリがインストールされていないと
エラーになる

エラーはページが存在しませんというもの

このため、アプリがインストールされていないときには
アプリのダウンロードページに遷移するようにする

ちなみに
独自urlスキーム 作成 Android
で調べてみたけど
ソーシャルメディアアプリだけでなく
自作アプリでも、URLスキームの利用は可能

以下は、Twitterアプリがインストールされてないときには
ダウンロードページへ遷移する処理

<a href="twitter-btn">タイムラインの表示</a>

<iframe frameborder="1" scrolling="auto" id="twitter-launcher" name="twitter-launcher"></iframe>

でiframeの表示を overflow:hidden;で隠し
そのiframeのsrcでURLスキームリンクを指定する
location.href
ではなく
iframe のsrcなのは
必要なアプリがインストールされていないときにJavascriptで
アプリのダウンロードページへ遷移するため

また iframe の src による画面遷移の場合
親ページのJavascriptが続行して実行される

つまり、アプリがインストールされているなら iframeで処理して
アプリがインストールされていないときには
location.hrefを使い、ダウンロードページへリンクする

Javascriptで
iframe の srcで外部ドメインのサイトを指定しても
セキュリティーにより遷移できない

Androidのブラウザーのときの処理は

if(/(Android)/.test(navigator.userAgent)){
DOWNLOAD_URL=" market://search?q=pname:com.twitter.android";
}

$(document).on("pageinit","#top",function(e){
$(this).on("click","#twitter-btn",function(e){
$("#twitter-launcher").attr('src',"twitter://timeline");
setTimeout(function(){

location.href=DOWNLOAD_URL;
},100);

});
});

market://search?q=pname:com.twitter.android

AndroidのTwitterアプリのダウンロードページ
もし、同じように自作アプリでやるなら
そのアプリのダウンロードページのURLにする

$("#twitter-launcher").attr('src',"twitter://timeline");

で、iframeのsrcを追加している
これで、タイムラインを表示

setTimeout(function(){

location.href=DOWNLOAD_URL;
},100);

で、タイムアウトしたら
ダウンロードページへリンクするように設定している

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です