アプリがインストールされていないときの処理
URLスキームは便利だけど
アプリがインストールされていないと
エラーになる
エラーはページが存在しませんというもの
このため、アプリがインストールされていないときには
アプリのダウンロードページに遷移するようにする
ちなみに
独自urlスキーム 作成 Android
で調べてみたけど
ソーシャルメディアアプリだけでなく
自作アプリでも、URLスキームの利用は可能
以下は、Twitterアプリがインストールされてないときには
ダウンロードページへ遷移する処理
1 2 3 | < 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のブラウザーのときの処理は
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | if (/(Android)/.test(navigator.userAgent)){ } $(document).on( "pageinit" , "#top" , function (e){ $( this ).on( "click" , "#twitter-btn" , function (e){ setTimeout( function (){ location.href=DOWNLOAD_URL; },100); }); }); |
market://search?q=pname:com.twitter.android
は
AndroidのTwitterアプリのダウンロードページ
もし、同じように自作アプリでやるなら
そのアプリのダウンロードページのURLにする
1 |
で、iframeのsrcを追加している
これで、タイムラインを表示
1 2 3 4 | setTimeout( function (){ location.href=DOWNLOAD_URL; },100); |
で、タイムアウトしたら
ダウンロードページへリンクするように設定している