웹앱 연동
웹앱에 대해서는 문서를 참고해주세요.
WKWebView 를 통해 자사 웹사이트를 랜더링하는 경우, 다음 같은 설정을 통해 웹사이트에 포함된 핵클 JavaScirpt SDK를 웹사이트 코드 변경없이 핵클 iOS SDK 기능과 동일하게 사용할 수 있습니다.
브릿지 설정을 하면 웹뷰에서 발생하는 핵클 이벤트는 iOS SDK를 통해 수집됩니다.
웹뷰 브릿지는 Hackle JavaScript SDK에서 브릿지로 전달한 데이터만 후킹하여 처리하고 나머지 데이터는 참조한 delegate로 전달합니다.
...
Hackle.app().setWebViewBridge(webView)
......
self.webView = ...
HackleApp *hackleApp = [Hackle app];
[hackleApp setWebViewBridge:self.webView :NULL];
...해당 기능을 사용하기 위해서는 JavaScript 웹페이지에서 동일한 App SDK 키를 사용해야 합니다.
핵클 iOS 웹뷰 설정은 iOS
UIDelegate및WKUserScript등을 이용하여 핵클 JavaScript SDK와 상호작용하게 됩니다. 반드시WKWebView::load함수 호출 이전에 해당 설정이 완료될 수 있도록 코드를 위치시켜 주세요.
이미 사용하고 있는 UIDelegate가 있는 경우 다음과 같이 사용하고 있는 UIDelegate와 함께 해당 함수로 전달해 주세요.
UIDelegate를 설정하지 않은 경우 웹뷰 객체의UIDelegate가 있으면 해당 delegate를 참조합니다.UIDelegate를 설정한 경우 해당 delegate를 참조합니다.
...
Hackle.app().setWebViewBridge(webView, myUiDelegate)
......
self.webView = ...
self.myUIDelegate = ...
HackleApp *hackleApp = [Hackle app];
[hackleApp setWebViewBridge:self.webView :self.myUIDelegate];
...앱에서 이미 delegate에 다양한 기능을 추가해서 사용하는 경우 delegate 설정이 모두 완료된 후
setWebViewBridge함수 호출을 권장합니다.
웹뷰에서 발생하는 자동 수집 이벤트 연동
웹뷰 내 웹사이트에서 발생하는 $page_view와 $engagement는 비활성화 상태입니다.
웹뷰 브릿지를 설정할 때 HackleWebViewConfig를 설정하여 자동 수집 이벤트를 각각 활성화할 수 있습니다.
let webViewConfig = HackleWebViewConfigBuilder()
.automaticScreenTracking(true)
.automaticEngagementTracking(true)
.build()
Hackle.app().setWebViewBridge(webView, myUiDelegate, webViewConfig)설정 옵션
| 설정 | 기능 | 기본값 | 지원 버전 |
|---|---|---|---|
automaticScreenTracking | 웹사이트에서 발생해는 $page_view 수집 여부 | false | 2.57.0 + |
automaticEngagementTracking | 웹사이트에서 발생하는 $engagement 수집 여부 | false | 2.57.0 + |
automaticRouteTracking | 웹사이트에서 발생하는 페이지 정보 자동 수집 여부 | true | 2.59.0 + |
웹페이지 이동 시
$page_view와$engagement를 자동 수집하려면
automaticScreenTracking,automaticEngagementTracking,automaticRouteTracking를 모두true로 설정하세요.웹페이지 이동 시
$page_view와$engagement를 수동 수집하는 경우automaticScreenTracking,automaticEngagementTracking는true로 설정하고,
automaticRouteTracking를false로 설정하세요.
Updated 3 days ago
