

Monacaを用いてiOSとAndroidのハイブリッドアプリを開発しております。外部URLをinappbrowserで開こうとしているのですが、挙動がおかしいです。

[code]

    window.open(href, '_blank');
    
[/code]

とすると、ちゃんとinappbrowserが起動するのですが、

[code]

    window.open(href, '_self');
    
[/code]

とすると、inappbrowserが起動はしているのかもしれませんが、通常のinappbrowserではなく、戻るボタン（<）や閉じるボタン（×）が表示されません。つまり、inappbrowserを開いたら、アプリに戻れなくなってしまいます。ちゃんとinappbrowserプラグインも入れています。

引数が `_blank` から `_self` になっただけで起動しなくならなくなるのはなんか変です。

`window.open(href, '_self');` としたときにも、どうすればちゃんとinappbrowserが起動するでしょうか?


CC BY-SA 3.0
2016-03-14T17:06:36.160
23136
2016-11-03T21:26:05.243
2016-03-14T17:15:08.587
76
14786
question
monaca
Monacaにおけるinappbrowserの挙動について


基本的には出来ませんが、  
`WhiteList`から対象のURLを除外すればCordovaWebViewで開けないので  
`InAppBrowser`を強制することが出来るのではないでしょうか？  
`InAppBrowser`には開く先をオプションで指定する機能があります。

>   * _self: 指定されたURLがWhiteListにある場合CordovaのWebViewで開きます。  
>  それ以外の場合はInAppBrowserで開きます。
>   * _blank: `InAppBrowser`で開きます。
>   * _system: OSのデフォルトに設定されているWebブラウザーで開きます。
>

ですが、ブラックリストではないことに注意です。  
ホワイトリストですので許可されたURLのみCordovaWebViewからアクセスできます。  
初期設定であれば`http`か`https`の接続を全て許可しているかと思います。  
外部のサーバに画像を読みに行ったり、Ajaxで通信を行ったりしている場合は設定に要注意です。


CC BY-SA 3.0
2016-03-15T00:31:05.403
23142
2016-03-15T00:31:05.403
23136
answer