InAppBrowser プラグイン
InAppBrowser
このプラグインでは、cordova.InAppBrowser.open()
を使用して、InAppBrowser ウィンドウ ( InAppBrowser 提供の Web ブラウザー ) を開きます。
このプラグインの詳細は、 こちらの原文 ( GitHub ) をご確認ください。
window.open
cordova.InAppBrowser.open()
関数は、window.open()
関数を代替する関数です。
次の記述をすれば、既存の window.open()
を使用して、InAppBrowser ウィンドウを開くことができます。
ブラウザのwindow.open関数を上記のように変更すると、 意図しない副作用が発生する可能性があります(特に、このプラグインが別のプラグインの依存関係としてのみ含まれている場合)。
InAppBrowserウィンドウは、標準のWebブラウザーのように動作し、CordovaAPIにアクセスできません。 このため、サードパーティの(信頼できない)コンテンツをメインのCordova Webビューにロードするのではなく、ロードする必要がある場合は、InAppBrowserをお勧めします。 InAppBrowserはホワイトリストの対象ではなく、システムブラウザでリンクを開くこともありません。
InAppBrowserは、デフォルトでユーザーに独自のGUIコントロール(戻る、進む、完了)を提供します。
プラグイン ID
プラグインの追加方法
このプラグインを使用する場合には、Monaca クラウド IDE の [ Cordova プラグインの管理 ] 上で、InAppBrowser
プラグインを有効にします。
プリファレンス
config.xml
InAppBrowserStatusBarStyle [iOS のみ]
(文字列、オプション lightcontent
、darkcontent
、または default
。デフォルトは「default」)iOS のテキストの色のスタイルを設定します。 「lightcontent」は、暗い背景での使用を目的としています。 「darkcontent」は、iOS 13 以降でのみ使用可能で、明るい背景での使用を目的としています。
API の解説
cordova.InAppBrowser.open
InAppBrowser
の新規インスタンス内、現在開いているブラウザーのインスタンス内、または、system browser ( システムブラウザー ) 内で、URL を開きます。
ref: ターゲットが 、
'_blank'
に設定されているときのInAppBrowser
ウィンドウへのリファレンス。 (InAppBrowser)url: 読み込みをする URL。Unicode 文字が URLに含まれる場合、
encodeURI()
を使用して変換します。 (String)target: URL の読み込み先として使用するブラウザーの種別。任意のパラメーターです。デフォルトは、
_self
となります。 (String)_self
: ホワイトリストに対象の URL が登録されている場合には、Cordova WebView を開きます。それ以外の場合には、InAppBrowser
を開きます。_blank
:InAppBrowser
を開きます。_system
: システム標準の Web ブラウザー ( system's web browser ) を開きます。
options:
InAppBrowser
で使用する、任意のオプションです。デフォルトは、location=yes
となります。 (String)options
で使用する文字列に、空白は使用できません。また、各設定 ( 名前と値の組み合わせ ) の間を、コンマで区切る必要があります。各設定の名前では、大文字・小文字を区別しません。すべてのプラットフォームは、以下の値をサポートしています。
location:
yes
またはno
を設定すると、InAppBrowser
のロケーションバーを、それぞれ、表示または非表示にできます。
Android 専用 :
hidden:
yes
に設定した場合、ブラウザーの 「 作成 」 とページの読み込みを行いますが、表示はしません。読み込みが完了すると、loadstop イベントが発火します。省略またはno
( デフォルト ) に設定した場合、通常通り、ブラウザーを開き、読み込みを行います。beforeload: beforeload イベントを有効にして、ブラウザに実際にロードされるページを変更するように設定します。受け入れられる値は、GET リクエストのみをインターセプトする、POST リクエストでインターセプトする、または GET と POST リクエストの両方をインターセプトする
yes
です。POST リクエストは、現在サポートされておらず、無視されることに注意してください(beforeload=post
を設定すると、エラーが発生します )。clearcache:
yes
に設定した場合、新規のウィンドウを開く前に、ブラウザーの cookie を削除します。clearsessioncache:
yes
に設定した場合、新規のウィンドウを開く前に、セッションの cookie を削除します。closebuttoncaption: [X] の代わりに閉じるボタンのキャプションとして使用する文字列を設定します。この値は、自分でローカライズする必要があることに注意してください。
closebuttoncolor: 有効な 16 進色文字列に設定します。( Example:#00ff00 )。テキストまたはデフォルトの [X] に関係なく、閉じるボタンの色をデフォルトから変更します。この設定は、location を
yes
に設定している場合にのみ有効です。footer:
yes
に設定した場合、フッターに閉じるボタンが iOS の完了ボタンと同様に表示されます。 閉じるボタンはヘッダーと同じように表示されるため、closebuttoncaption と closebuttoncolor を使用してプロパティを設定します。footercolor: #00ff00 または #CC00ff00(#aarrggbb)などの有効な 16 進数の色の文字列に設定した場合、フッターの色がデフォルトから変更されます。 この設定は、footer を
yes
に設定している場合にのみ効果があります。hardwareback:
yes
に設定した場合、ハードウェア標準の 「 戻る 」 ボタンを使用して、前のページに戻ります ( InAppBrowser に記録されているページ遷移の履歴を使用 )。「 前のページ 」 が存在しない場合には、InAppBrowser が閉じます。デフォルト値はyes
です。「 戻る 」 ボタンを使用して、InAppBrowser を閉じたい場合には、no
に設定します。hidenavigationbuttons:
yes
に設定した場合、ロケーションツールバーのナビゲーションボタンが非表示になります。ユーザーがロケーションをyes
に設定している場合にのみ有効です。 デフォルト値はno
です。hideurlbar:
yes
に設定した場合、ロケーションツールバーの URL バーが非表示になります。ユーザーが location をyes
に設定した場合にのみ有効です。 デフォルト値はno
です。navigationbuttoncolor: 有効な 16 進数の色文字列に設定します( Example:#00ff00 )。両方のナビゲーションボタンの色がデフォルトから変更されます。 この設定は、location を
yes
に設定し、hidenavigationbuttons をyes
に設定していない場合にのみ効果があります。toolbarcolor: 有効な 16 進数の色文字列に設定します( Example:#00ff00 )。これにより、ツールバーの色がデフォルトから変更されます。 ユーザーの この設定は、location が yes に設定されている場合にのみ有効です。
lefttoright:
yes
に設定した場合、ナビゲーションボタンと閉じるボタンの位置が入れ替わります。 具体的には、ナビゲーションボタンは左に、閉じるボタンは右に移動します。zoom:
yes
に設定した場合、Android ブラウザーのズームコントロール ( 制御バー ) が表示されます。no
に設定した場合、非表示になります。デフォルト値はyes
です。mediaPlaybackRequiresUserAction:
yes
またはno
に設定して、 HTML5 の audio または video の自動再生を、有効または無効にします ( デフォルトはno
)。shouldPauseOnSuspend: InAppBrowser WebViewでのバックグラウンドオーディオを停止するためにアプリで一時停止/再開させるには
yes
に設定します。( これは、CB-11013 のような Google Play の問題を避けるために必要な場合があります。)useWideViewPort: WebViewが、
viewport
タグのサポートを有効にするか、wide viewport
を使用するかを設定します。設定の値がno
の場合、レイアウト幅は常に端末非依存(CSS)ピクセルの WebView コントロールの幅に設定されます。値がyes
で、ページに viewport タグが含まれている場合、タグで指定された幅の値が使用されます。ページにタグが含まれていないか、幅が指定されていない場合は、wide viewport が使用されます。( デフォルトはyes
です )。fullscreen: InappBrowser WebView をフルスクリーンで表示するかどうかを設定します。フルスクリーンモードでは、ステータスバーは非表示になります。デフォルト値は
yes
です。
iOS 専用 :
hidden:
yes
に設定した場合、ブラウザーの 「 作成 」 とページの読み込みを行いますが、表示はしません。読み込みが完了すると、loadstop イベントが発火します。省略またはno
( デフォルト ) に設定した場合、通常通り、ブラウザーを開き、読み込みを行います。beforeload: beforeload イベントを有効にして、ブラウザに実際にロードされるページを変更するように設定します。受け入れられる値は、GET リクエストのみをインターセプトする、POST リクエストでインターセプトする、または GET と POST リクエストの両方をインターセプトする
yes
です。POST リクエストは、現在サポートされておらず、無視されることに注意してください(beforeload=post
を設定すると、エラーが発生します )。clearcache:
yes
に設定した場合、新規のウィンドウを開く前に、ブラウザーの cookie を削除します。clearsessioncache:
yes
に設定した場合、新規のウィンドウを開く前に、セッションの cookie を削除します。cleardata:
yes
に設定した場合、新しいウィンドウが開く前にブラウザのローカルストレージ全体( Cookie、HTML5 ローカルストレージ、IndexedDB など )がクリアされます。closebuttoncolor: デフォルトの [完了] ボタンの色から変更するには、有効な 16 進数の色の文字列として設定します( Example:#00ff00 )。 ツールバーが無効になっていない場合にのみ適用されます。
closebuttoncaption: Done ボタンのラベルに使用する文字列を設定します。この値は、各自でローカライズする必要があります。
disallowoverscroll:
yes
またはno
に設定すると ( デフォルトでno
)、UIWebViewBounce プロパティを、それぞれ、オンまたはオフにします。hidenavigationbuttons:
yes
またはno
に設定して、ツールバーのナビゲーションボタンをオンまたはオフにします( デフォルトはno
)。 ツールバーが無効になっていない場合にのみ適用されます。navigationbuttoncolor: デフォルトの色から変更するには、有効な 16 進数の色文字列として設定します( Example:#00ff00 )。ナビゲーションボタンが表示されている場合にのみ適用されます。
toolbar:
yes
またはno
に設定した場合、InAppBrowser
のツールバーを、それぞれ、表示または非表示にします ( デフォルトはyes
)。toolbarcolor: ツールバーのデフォルトの色から変更するには、有効な 16 進数の色文字列として設定します( Example:#00ff00 )。ツールバーが無効になっていない場合にのみ適用されます。
toolbartranslucent:
yes
またはno
に設定した場合、ツールバーが半透明( 半透明 )になります( デフォルトはyes
)。 ツールバーが無効になっていない場合にのみ適用されます。lefttoright:
yes
に設定した場合、ナビゲーションボタンと閉じるボタンの位置が入れ替わります。 具体的には、閉じるボタンは右側に、ナビゲーションボタンは左側に移動します。enableViewportScale: meta タグを使用した、ビューポート ( viewport ) の尺度変更を、有効 (
yes
) または無効 (no
) にします ( デフォルトはno
)。mediaPlaybackRequiresUserAction:
yes
またはno
に設定して、 HTML5 の audio または video の自動再生を、有効または無効にします ( デフォルトはno
)。allowInlineMediaPlayback:
yes
またはno
に設定して、端末標準のメディア再生用インターフェイスではなく、ブラウザーウィンドウ内でのインライン再生を許可するか設定します。HTML のvideo
要素にはwebkit-playsinline
属性を指定する必要があります ( デフォルトはno
)。presentationstyle: presentation styleを設定する場合は、
pagesheet
、formsheet
、fullscreen
のいずれかを設定します ( デフォルトはfullscreen
)。transitionstyle: transition style を設定する場合は、
fliphorizontal
、crossdissolve
、coververtical
のいずれかを設定します ( デフォルトはcoververtical
)。toolbarposition:
top
またはbottom
に設定して、ツールバーの表示位置 ( ウィンドウの上・下 ) を指定します ( デフォルトはbottom
)。hidespinner: ローディングインジケータの可視性を変更するには、
yes
またはno
に設定します( デフォルトはno
)。
例
iOS Quirks
iPadOS 13の導入以来、iPad は、コンテンツモード / ユーザーエージェントを最適なブラウジング体験に適応させようとしています。 これにより、iPad のユーザーエージェントが Macintosh に設定され、ユーザーエージェントの文字列スニッフィングを使用してモバイルデバイスとして iPad を検出することが困難になる可能性があります。 これは、config.xml の PreferredContentMode 設定で変更できます。
上記の例では、ユーザーエージェントに iPad を含めるように強制しています。 もう1つのオプションは、desktop を使用してユーザーエージェントを Macintosh に変えることです。
InAppBrowser
ターゲットが '_blank'
に設定されているときに cordova.InAppBrowser.open
の呼び出しから返されたオブジェクトです。
メソッド
addEventListener
removeEventListener
close
show
hide
executeScript
insertCSS
InAppBrowser.addEventListener
InAppBrowser
からイベントリスナーを登録します。 ( ターゲットが '_blank'
に設定されている場合のみ使用可能 )
ref:
InAppBrowser
ウィンドウへのリファレンス (InAppBrowser)eventname: リスナーを設定するイベント (String)
loadstart:
InAppBrowser
が URLの読み込みを始めたときに発火するイベントloadstop:
InAppBrowser
が URLの読み込みを終えたときに発火するイベントloaderror: URL の読み込み時に、
InAppBrowser
がエラーを検出したときに発火するイベントexit:
InAppBrowser
ウィンドウを閉じるときに発火するイベントbeforeload: InAppBrowser が URL をロードするかどうかを決定するとき発火するイベント( オプション beforeloadが 設定されている場合のみ)。
message: InAppBrowser Webview 内にロードされたページから投稿されたメッセージを InAppBrowser が受信した時に発火するイベント。
callback:
イベントが発火したときに実行される関数。
InAppBrowserEvent
オブジェクトを、パラメーターとして、この関数に渡します。
例
InAppBrowserEvent のプロパティ
type: eventname ( イベント名)。
loadstart
、loadstop
、loaderror
、message
、exit
のいずれかとなります。 (String)url: 読み込んだ URL (String)
code: エラーコード (
loaderror
が発生した場合のみ ) (Number)message: エラーメッセージ (
loaderror
が発生した場合のみ )(String)data: メッセージの内容。( message イベントの場合のみ ) 。 文字列化されたJSONオブジェクト。(String)
例
InAppBrowser.removeEventListener
InAppBrowser
からイベントリスナーを削除します。 ( ターゲットが '_blank'
に設定されている場合のみ使用可能 )
ref:
InAppBrowser
ウィンドウへのリファレンス (InAppBrowser)eventname: リスナーの登録を解除するイベント (String)
loadstart:
InAppBrowser
が URLの読み込みを始めたときに発火するイベントloadstop:
InAppBrowser
が URLの読み込みを終えたときに発火するイベントloaderror: URL の読み込み時に、
InAppBrowser
がエラーを検出したときに発火するイベントexit:
InAppBrowser
ウィンドウを閉じるときに発火するイベントmessage: InAppBrowser Webview 内にロードされたページから投稿されたメッセージを InAppBrowser が受信した時に発火するイベント。
callback:イベントが発火したときに実行される関数。
InAppBrowserEvent
オブジェクトを、この関数に渡します。
例
InAppBrowser.close
InAppBrowser
ウィンドウを閉じます。
ref:
InAppBrowser
ウィンドウへのリファレンス (InAppBrowser)
例
InAppBrowser.show
非表示で実行されている InAppBrowser ウィンドウを表示します。 InAppBrowser ウィンドウ がすでに表示されている場合には、この関数を呼んでも効果ありません。
ref: InAppBrowser ウィンドウへのリファレンス (InAppBrowser)
例
InAppBrowser.hide
InAppBrowserウィンドウを非表示にします。 InAppBrowserがすでに非表示の場合、この呼び出しは無効です。
ref: InAppBrowser ウィンドウへのリファレンス (InAppBrowser)
例
InAppBrowser.executeScript
InAppBrowser
ウィンドウ上に、JacaScript コードをインジェクト ( inject/注入 ) します。(ターゲットが '_blank'
に設定されている場合のみ使用可能)
ref:
InAppBrowser
ウィンドウへのリファレンス (InAppBrowser)injectDetails: 実行するスクリプトの詳細。
file
またはcode
キーを指定します。 (Object)file: インジェクトするスクリプトの URL
code: インジェクトするスクリプトのテキスト
callback: JavaScript コードのインジェクト後に実行する関数
インジェクトしたスクリプトの形式が
code
の場合、callbackに、配列
形式のパラメーターが 1つ渡され実行されます。このパラメーターは、インジェクトしたスクリプトの実行結果( 戻り値 )です。複数行のスクリプトに関しては、最後のステートメント (statement ) の戻り値、または、最後に評価 ( evaluate ) した表現 (expression ) が、引き渡すパラメーターとなります。
例
InAppBrowser.insertCSS
CSSを InAppBrowser
ウィンドウに挿入します。(ターゲットが '_blank'
に設定されている場合のみ使用可能)
ref:
InAppBrowser
ウィンドウへのリファレンス (InAppBrowser)injectDetails: 実行するスクリプトの詳細。
file
またはcode
キーを指定します。 (Object)file: インジェクトするスタイルシートの URL
code: インジェクトするスタイルシートのテキスト
callback: CSS のインジェクト後に実行する関数
例
最終更新