前提・実現したいこと
MonacaのInAppBrowserでウィンドウを開きなおさずにリダイレクトを行いたいです。
画面の向きに応じて縦ならリンクA、横ならリンクBをInAppBrowserで表示するという処理を作成しています。
まず読み込み時に画面の向きに応じてInAppBrowserでリンクを開きます。その後画面の向きが変化した時、向きに応じてリンク先にリダイレクトします。
しかしそのリダイレクトをlocation.hrefで行うと開いていたウィンドウが閉じて再度開かれるという挙動になります。
これを一度ウィンドウを開きなおすのではなく、同じウィンドウのまま遷移させたいです。
InAppBrowserで呼び出したページ内のaタグをタップした際は同じウィンドウ内で遷移することができたのですが、自動リダイレクトの場合は同じウィンドウのまま遷移はできないのでしょうか?
なお、画面の向きに変化があったかどうかの判定はOnsenUIのons.orientation.onのchangeイベントを使用しています。
該当ソースコード
html
1 2<body onload="init()";> 3 ~~省略~~ 4</body> 5
javascript
1let inAppBrowserRef = undefined; 2 3//初期処理 4function init() { 5 ons.ready(function(){ 6 if(ons.orientation.isPortrait()){ 7 //縦向きの時 8 link = "https://リンクA"; 9 }else{ 10 //横向きの時 11 link = "https://リンクB"; 12 } 13 inAppBrowserRef = cordova.InAppBrowser.open(url, '_blank', 'location=no,presentationstyle=fullscreen'); 14 }); 15} 16 17//画面の向きに応じてリダイレクト 18ons.orientation.on("change", function() { 19 let link = ''; 20 if(ons.orientation.isPortrait()){ 21 //縦向きの時 22 link = "https://リンクA"; 23 }else{ 24 //横向きの時 25 link = "https://リンクB"; 26 } 27 location.href = link; 28}); 29 30
バージョン
Cordova 10.0
InAppBrowser 4.1.0
わかりにくい点等あるかもしれませんが、何卒よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/19 00:22