WebBrowser 外部オブジェクトを使用すると、スマート デバイス アプリケーションに埋め込まれた Web アプリケーションに関連するイベントを処理できます。
ここでは、後で柔軟に使用できるように、正確に定義しておく必要のある名称がいくつか使われています。
埋め込みの Web View コントロール: パネルのレイアウト内に表示されるコントロールであり、Web ページを表示します。
Component ドメインまたは
HTML ドメインに応じて、読み取り専用の項目属性、変数、または SDT メンバーになります。
インライン Web ブラウザー: アプリケーション内に表示される、一般的なナビゲーションエレメント (URL、戻るボタン、更新ボタンなど) を備えた全画面表示の Web ブラウザーです。
インライン Web ブラウザーを開き、指定された URL を表示します。このメソッドは、
Interop 外部オブジェクトの OpenInBrowser メソッドに代わるものです。
インライン Web ブラウザーを閉じます。
このイベントでは、埋め込みの Web View コントロールから開始されたナビゲーションイベントを、それらのイベントが発生する前にキャプチャして、ナビゲーションをどのように処理するかを判断できます。
このイベントは、インラインの Web ブラウザーからはトリガーされず、埋め込みの Web View コントロールからのみトリガーされます。
WebBrowser.BeforeNavigate がない場合は、埋め込みの Web View コントロールからリンクをたどると、インラインの Web ブラウザーが開きます。これは、埋め込みの Web View コントロールには、正しいナビゲーションを行うのに必要なナビゲーションコントロール (戻るボタンや更新ボタンなど) が備わっていないためです。
WebBrowser.BeforeNavigate がある場合は、同じ埋め込みの Web View コントロールでリンクを開くか、インラインの Web ブラウザーを開く必要があるかを制御できます。
このイベントは、開く URL と、ナビゲーションが処理されているかどうかを示す入出力パラメーターを受け取ります。&handled 変数を True に設定すると、アプリケーションではリンクをたどりません。これは、イベントで処理されていると見なされるためです。False に設定した場合は通常どおりにナビゲーションが処理され、アプリケーションでインライン Web ブラウザーが開いて &url パラメーターが表示されます。
このイベントは、スマート デバイス アプリケーション内で開かれたインライン Web ブラウザーが閉じられたときにトリガーされます。モバイルアプリケーションと Web アプリケーションの間の通信をコーディングするのに役立ちます。
埋め込みの Web View コントロール内でナビゲーションする場合 (&Component 変数がある場合)、次のコードを使用できます。
Event GeneXus.SD.WebBrowser.BeforeNavigate(&Url, &Handled)
composite
&Component = &Url //フォーム内の変数に新しい URL を割り当て
&Handled = true
endcomposite
EndEvent
ナビゲーションの一般的なオプション (戻るまたは更新のアクションなど) は使用できないことに留意してください。
このイベントは、いくつかの手順で構成されるウィザードのように Web ページが機能する、決済フローの実装にも役立ちます。処理が終了するといくつかの一般的なコールバック URL が呼び出されて、決済プロセスが終了します。
次のように実装できます。
Event GeneXus.SD.WebBrowser.BeforeNavigate(&Url, &Handled)
composite
if &Url = &callbackURL
<your_code>
endif
&Handled = true //埋め込みの Web ビュー内で常にナビゲーションを実施
endcomposite
EndEvent