前提・実現したいこと
javascriptを使って、ユーザーのデバイスによってアプリのページに遷移するプログラムを課題としてやっています。
アプリがデバイスにインストールされていたら、アプリを開き、インストールされていなかったらアプリダウンロードページを開かせたいのですがうまくいきません。
発生している問題・エラーメッセージ
iosでページを開いたときに、ページが遷移しません。
該当のソースコード
Java
1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <title>アプリ起動サンプル</title> 6</head> 7<body> 8 9 <div style="width: 0; height: 0; overflow: hidden;"> 10 <iframe id="launch_frame" name="launch_frame"> </iframe> 11 </div> 12 13 <a href="https://line.me/ja/">サイトを開く</a> 14 15 <script> 16 // アプリを開く。アプリがインストールされていなければサイトを開く。 17 function launchApp() { 18 var IOS_SCHEME = 'https://line.me/R/'; 19 var IOS_STORE = 'https://apps.apple.com/jp/app/line/id443904275'; 20 var ANDROID_SCHEME = 'https://line.me/R/'; 21 var ANDROID_PACKAGE = 'jp.naver.line.android'; 22 var PC_SITE = 'https://line.me/ja/'; 23 //var frame = document.getElementById('launch_frame'); 24 25 var userAgent = navigator.userAgent.toLowerCase(); 26 27-------------自身ではここまでしかわかりませんでした。--------------------------------------------------------------------- 28 29 // iPhone端末ならアプリを開くかApp Storeを開く。 30 if (userAgent.search(/iphone|ipad|ipod/) > -1) { 31 launch_frame.location.href = IOS_SCHEME + '://'; 32 setTimeout(function() { 33 location.href = IOS_STORE; 34 }, 500); 35 } 36 // Android端末ならアプリを開くかGoogle Playを開く。 37 else if (userAgent.search(/android/) > -1) { 38 document.location = 'intent://#Intent;scheme=' + ANDROID_SCHEME 39 + ';package=' + ANDROID_PACKAGE + ';end'; 40 } 41 // その他・不明・PCなどの場合はサイトを開く。 42 else { 43 document.location = PC_SITE; 44 } 45 } 46 47 // ページ読み込み時に実行 48 window.onload = function() { 49 launchApp(); 50 } 51 </script> 52</body> 53</html>
試したこと
iframeの要素をgetElementByIdで取得して、location.hrefでページを遷移させようとしたのですがだめでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー