Webviewで外部のサイトを表示するアプリを開発していて、
inappbrowserプラグインを使用しています。
現在問題になっているのはinappbrowserで外部リンクを開いた時、
外部のブラウザ(Chromeとか)が開かず、inappbrowser内で遷移しちゃう所です。
この問題を解決すべく、二つの方法を試して見たんですが、
未だに解決にはなってない状態です。
一つ目はexecuteScriptでスクリプトを差し込んで、
aリンクを無効化してシステムブラウザーで開く方法で、
<script> $(document).on('click', 'a', function (event) { event.preventDefault(); if (遷移先===外部) { //システムブラウザで開く window.open('遷移先', '_system'); } else { location.assign('遷移先') } }); </script>
上記のようなコードで試してみた所、
前と変わりなく外部のブラウザ(Chromeとか)が開かず、
inappbrowser内で遷移しちゃいます。
二つ目はloadstartというURLがロードされる時の
inappbrowserのイベントで新しいinappbrowserのインスタンスを開く方法で、
}).addEventListener('loadstart', function(event) { if((event.url).indexOf('apache.org') === -1) { window.open(event.url, '_system'); ref.executeScript({ code: 'window.history.back();' }, null); } })
上記のようなコードで試してみた所、
外部のブラウザ(Chromeとか)は開くようになりましたが、
元のinappbrowserも外部サイトの方に遷移しちゃいます。
一週間くらい苦戦を続けた後、
inappbrowserの中で外部ブラウザーを開くのは元々
無理じゃないか?と思うようになってきました。
inappbrowserで外部リンクを開く方法、
もしくはinappbrowser以外で実現できる方法について
教えて頂けますでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。