質問: Monacaを用いてiOSとAndroidのハイブリッドアプリを開発しております。外部URLをinappbrowserで開こうとしているのですが、挙動がおかしいです。 ``` window.open(href, '_blank'); ``` とすると、ちゃんとinappbrowserが起動するのですが、 ``` window.open(href, '_self'); ``` とすると、inappbrowserが起動はしているのかもしれませんが、通常のinappbrowserではなく、戻るボタン(<)や閉じるボタン(×)が表示されません。つまり、inappbrowserを開いたら、アプリに戻れなくなってしまいます。ちゃんとinappbrowserプラグインも入れています。 引数が `_blank` から `_self` になっただけで起動しなくならなくなるのはなんか変です。 `window.open(href, '_self');` としたときにも、どうすればちゃんとinappbrowserが起動するでしょうか?
回答: 基本的には出来ませんが、 `WhiteList`から対象のURLを除外すればCordovaWebViewで開けないので `InAppBrowser`を強制することが出来るのではないでしょうか? `InAppBrowser`には開く先をオプションで指定する機能があります。 > > * _self: 指定されたURLがWhiteListにある場合CordovaのWebViewで開きます。 > > それ以外の場合はInAppBrowserで開きます。 > * _blank: `InAppBrowser`で開きます。 > * _system: OSのデフォルトに設定されているWebブラウザーで開きます。 > > > ですが、ブラックリストではないことに注意です。 ホワイトリストですので許可されたURLのみCordovaWebViewからアクセスできます。 初期設定であれば`http`か`https`の接続を全て許可しているかと思います。 外部のサーバに画像を読みに行ったり、Ajaxで通信を行ったりしている場合は設定に要注意です。