コンテンツにスキップ

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 に保持されます。

フィードバック

このページは役に立ちましたか?