WebView データモニタリング¶
このドキュメントでは、HarmonyOS WebView シナリオにおけるデータ収集の方法について説明します。
有効化方法¶
RUM 設定 で setEnableTraceWebView(true) を有効にすると、SDK は WebView 内の RUM データを自動的に収集します。
Host ホワイトリストの設定¶
setAllowWebViewHost(...) を使用すると、WebView JavaScript Bridge を使用できる Host を制限できます。ホワイトリストは WebView 内の Browser SDK に提供されます。null または空の配列を渡すと、Host を制限しません。
import { FTSDK, FTRUMConfig } from '@guancecloud/ft_sdk/Index';
const rumConfig = new FTRUMConfig()
.setRumAppId('your-rum-app-id')
.setEnableTraceWebView(true)
.setAllowWebViewHost(['example.com', 'm.example.com']);
FTSDK.installRUMConfig(rumConfig);
使用例¶
import { FTWebViewHandler } from '@guancecloud/ft_sdk/Index';
import { webview } from '@kit.ArkWeb';
@Component
export struct MyWebViewPage {
@State webController: webview.WebviewController = new webview.WebviewController();
private webViewHandler: FTWebViewHandler = new FTWebViewHandler();
aboutToAppear() {
this.webViewHandler.setWebView(this.webController);
}
aboutToDisappear() {
this.webViewHandler.clearWebController();
}
build() {
Web({
src: 'https://example.com',
controller: this.webController
})
.javaScriptAccess(true)
.javaScriptProxy(this.webViewHandler.getJavaScriptProxy(this.webController))
}
}
説明¶
FTWebViewHandlerは、アプリケーションのエントリポイントにある RUM 設定を読み取ります。- ページ表示時に
webControllerをバインドし、ページ離脱時に速やかにクリアします。 setEnableTraceWebView(true)を有効にしない場合、WebView データは自動収集されません。- Host ホワイトリストを設定した場合、ホワイトリスト内のページのみが JavaScript Bridge を使用できます。
view_path_nameが含まれていない場合、SDK はこのフィールドを補完しません。含まれている場合はその値を保持します。view_referrerが含まれていない場合は、現在のネイティブ View にフォールバックします。- WebView データの
sdk_versionはネイティブ SDK が基準となります。Browser SDK のバージョン情報はsdk_pkg_infoに保持されます。