Monacaでハイブリッドアプリを作成しています。
その際、iframeで別サイト(自分のサイト)を参照し、フレーム内でページ遷移するようにしています。
iframe(子フレーム)内で外部リンクを開くときには「InAppBrowser」プラグインを利用して親フレーム経由でアプリ内ブラウザ(または外部ブラウザ)で開きたいのですが、うまくいきません。
iFrame内のサイトに下記のようなscriptを置いて、リンクをクリックした際にはクリック親フレーム内のInAppBrowserを使うように設定しています。
<a href="#" onclick="clickURLopen('https://google.co.jp');return false;">リンク</a>
<script> function clickURLopen(url) { if(typeof inAppOpen == 'function') { inAppOpen(url); } else{ window.open(url, '_system', 'location=yes'); return false; } } </script>親フレーム(Monaca上にて作成)のscriptは下記の通りです。
function inAppOpen(Ext){
window.open = cordova.InAppBrowser.open;
window.open(url,'_system','location=yes');
}
var innerWindow = document.getElementById('iframe1').contentWindow;
innerWindow.inAppOpen= inAppOpen;
iframe内の子フレームから別ページに遷移した先(これも自サイト)でリンクを開こうとすると、
1)一度目は「typeof inAppOpen」がUndefinedになっているようでブラウザを立ち上げず画面いっぱいにリンクが開いてしまう。
2)前の画面に戻りもう一度トライすると今度はInAppBrowserが起動する。
という現象が起こっています。
理由や対処法などお分かりの方がいらっしゃいましたらご教示頂ければ幸いです。
宜しくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/09 13:34
2018/10/09 23:15