WebView データモニタリング¶
UniApp の WebView データモニタリングは、WebView がアクセスするページに Web モニタリング SDK を統合する必要があります。
Android はオフラインパッケージと uni 小程序のシナリオのみサポートしています。
設定¶
通常の uni-app は RUM の初期化時に次のように設定します:
import { rum } from '@/uni_modules/GC-UniPlugin';
rum.setConfig({
enableTraceWebView: true,
allowWebViewHost: [
'example.com'
]
});
enableTraceWebView:WebView RUM ブリッジを有効にするかどうか。デフォルトはtrue;allowWebViewHost:追跡を許可する WebView ホストのリスト。設定しない場合はすべてのホストを収集します。
通常の uni-app は、最初に Mobile SDK と RUM の初期化を完了してから WebView をロードする必要があります。uni 小程序はホスト App が SDK と RUM の初期化を行うため、重複して初期化しません。
プラットフォームの説明¶
- Android、iOS は標準の
<web-view>を使用しますが、実際の機能は Native SDK とパッケージ方法に依存します; - HarmonyOS は、ビジネス側が
WebviewControllerを保持しているかどうかに応じて、対応する接続方式を選択します。詳細は HarmonyOS 接続 を参照してください; - uni 小程序の WebView 収集機能は、ホスト App に統合された Native SDK によって提供されます。Android ホストはさらに
ft-pluginをインストールして適用する必要があります。
HarmonyOS 接続¶
HarmonyOS の WebView ブリッジは、ターゲットページのロード前にインストールする必要があります。ビジネス側が WebviewController を保持しているかどうかに応じて、以下のいずれかの方法を選択してください。同じ WebView で両方の方法を同時に使用しないでください。
ビジネス側が WebviewController を保持しない場合¶
通常の uni-app ページが WebviewController を直接管理しない場合、HarmonyOS プラットフォームではプラグインが提供するネイティブ埋め込みコンポーネント gcwebview を使用します。このコンポーネントは、コントローラーが利用可能になると自動的にブリッジをインストールし、コンポーネントが破棄されると自動的に解放します。
<!-- #ifdef APP-HARMONY -->
<embed
class="harmony-webview"
tag="gcwebview"
:options="{
src: webviewUrl,
viewName: 'order-detail'
}"
></embed>
<!-- #endif -->
<!-- #ifndef APP-HARMONY -->
<web-view :src="webviewUrl" />
<!-- #endif -->
src:ロードする Web ページのアドレス;viewName:オプションのネイティブ RUM ビュー名。各ビジネス WebView に意味のある安定した名前を設定することを推奨します。設定しない場合のデフォルトはwebviewです;gcwebviewを使用する場合、rum.attachWebView()やrum.detachWebView()を呼び出す必要はありません。
ビジネス側が WebviewController を保持する場合¶
HarmonyOS のネイティブページ、UTS ネイティブ WebView、または uni 小程序のホスト App で、ビジネスコードが自分で WebviewController を保持している場合、コントローラーの onControllerAttached コールバックで rum.attachWebView() を呼び出し、この時点でターゲットページがまだロードされていないことを確認してください:
Web({ src: webviewUrl, controller })
.onControllerAttached(() => {
rum.attachWebView(controller, 'order-detail');
});
WebView 破棄時に対応するブリッジを解放します:
rum.attachWebView() は、RUM が初期化済みで enableTraceWebView が true の場合にのみ有効です。そのため、最初に rum.setConfig() を実行してから WebView を作成するか、コントローラーをバインドしてください。ページのロードが完了してからバインドすると、最初のドキュメントの Web RUM ブリッジを見逃す可能性があります。
uni 小程序のホスト App がこの方法を使用する前に、最初に uni 小程序を開く前にホスト拡張の registerNativeModules(context) 登録を完了しておく必要があります。
使用上の推奨事項¶
- Web ページに Web モニタリング SDK を統合します;
- Native SDK/RUM の初期化が完了してから WebView をロードします;
allowWebViewHostを使用して、ブリッジを許可するビジネスドメインを制限します;- HarmonyOS では
gcwebviewと手動のattachWebView()方式のいずれかを選択します; - Android、iOS、HarmonyOS の実機環境で、それぞれ WebView データと現在の RUM ビューの関連付けを検証します。