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 브리지 활성화 여부, 기본값trueallowWebViewHost: 추적을 허용할 WebView Host 목록, 설정하지 않으면 모든 Host 수집
일반 uni-app은 먼저 Mobile SDK와 RUM 초기화를 완료한 후 WebView를 로드해야 합니다. uni 미니 프로그램은 호스트 앱이 SDK와 RUM 초기화를 완료하며, 중복 초기화하지 않습니다.
플랫폼 설명¶
- Android, iOS는 표준
<web-view>를 사용하며, 실제 기능은 Native SDK 및 패키징 방식에 따라 달라집니다. - HarmonyOS는 비즈니스 측에서
WebviewController를 보유하는지 여부에 따라 해당 연동 방식을 선택합니다. 자세한 내용은 HarmonyOS 연동을 참조하세요. - uni 미니 프로그램의 WebView 수집 기능은 호스트 앱에 통합된 Native SDK가 제공합니다. Android 호스트는
ft-plugin을 설치하고 적용해야 합니다.
HarmonyOS 연동¶
HarmonyOS의 WebView Bridge는 대상 페이지를 로드하기 전에 설치해야 합니다. 비즈니스 측에서 WebviewController를 보유하는지 여부에 따라 다음 방식 중 하나를 선택하세요. 동일한 WebView에서 두 방식을 동시에 사용하지 마세요.
비즈니스 측이 WebviewController를 보유하지 않는 경우¶
일반 uni-app 페이지가 WebviewController를 직접 관리하지 않는 경우, HarmonyOS 플랫폼에서는 플러그인이 제공하는 네이티브 임베드 컴포넌트 gcwebview를 사용합니다. 이 컴포넌트는 컨트롤러를 사용할 수 있을 때 자동으로 Bridge를 설치하고, 컴포넌트가 소멸될 때 자동으로 해제합니다.
<!-- #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: 선택적 Native RUM View 이름. 각 비즈니스 WebView에 의미 있고 안정적인 이름을 설정하는 것이 좋습니다. 설정하지 않을 경우 기본값은webview입니다.gcwebview를 사용할 때는rum.attachWebView()또는rum.detachWebView()를 호출할 필요가 없습니다.
비즈니스 측이 WebviewController를 보유하는 경우¶
HarmonyOS 네이티브 페이지, UTS 네이티브 WebView 또는 uni 미니 프로그램 호스트 앱에서 비즈니스 코드가 자체적으로 WebviewController를 보유하는 경우, 컨트롤러의 onControllerAttached 콜백에서 rum.attachWebView()를 호출하고, 이 시점에 대상 페이지가 아직 로드되지 않았는지 확인하세요:
Web({ src: webviewUrl, controller })
.onControllerAttached(() => {
rum.attachWebView(controller, 'order-detail');
});
WebView가 소멸될 때 해당 Bridge를 해제합니다:
rum.attachWebView()는 RUM이 초기화를 완료하고 enableTraceWebView가 true인 경우에만 작동합니다. 따라서 먼저 rum.setConfig()를 실행한 후 WebView를 생성하거나 컨트롤러를 바인딩해야 합니다. 페이지 로드가 완료된 후에 바인딩하면 첫 번째 문서의 Web RUM Bridge를 놓칠 수 있습니다.
uni 미니 프로그램 호스트 앱이 이 방식을 사용하기 전에, uni 미니 프로그램을 처음 열기 전에 호스트 확장의 registerNativeModules(context) 등록을 완료해야 합니다.
사용 제안¶
- Web 페이지에 Web 모니터링 SDK를 통합합니다.
- Native SDK/RUM 초기화를 완료한 후 WebView를 로드합니다.
allowWebViewHost를 사용하여 브리지가 허용된 비즈니스 도메인을 제한합니다.- HarmonyOS의
gcwebview와 수동attachWebView()방식 중 하나를 선택합니다. - Android, iOS, HarmonyOS 실물 기기 환경에서 각각 WebView 데이터와 현재 RUM View의 연관성을 검증합니다.