For the complete documentation index, see llms.txt. This page is also available as Markdown.

웹앱 연동

Flutter SDK 2.13.0 이상, JavaScript SDK 11.25.1 이상 버전에서 지원하는 기능입니다.

웹앱에 대해서는 문서를 참고해주세요.

InAppWebView를 통해 자사 웹사이트를 랜더링하는 경우, 다음 같은 설정을 통해 웹사이트에 포함된 핵클 JavaScript SDK를 웹사이트 코드 변경없이 핵클 Flutter SDK 기능과 동일하게 사용할 수 있습니다.

이 경우 모든 핵클 이벤트는 Futter SDK를 통해 수집됩니다.

import 'dart:collection';

import 'package:flutter_inappwebview/flutter_inappwebview.dart';
import 'package:hackle/hackle.dart';

final keepAlive = InAppWebViewKeepAlive();

InAppWebView(
  initialSettings: InAppWebViewSettings(
    javaScriptEnabled: true,
  ),
  keepAlive = keepAlive,
  initialUserScripts: UnmodifiableListView<UserScript>([
    UserScript(
      source: HackleApp.getWebBridgeScript(),
      injectionTime: UserScriptInjectionTime.AT_DOCUMENT_START,
      forMainFrameOnly: true
    )]),
  onWebViewCreated: (controller) {
    controller.loadUrl(urlRequest: URLRequest(url: WebUri('YOUR_WEB_URL')));
  },
  onJsPrompt: (controller, jsPromptRequest) async {
    if(HackleApp.isInvocableCommandInWebView(jsPromptRequest.message)) {
      var result = await HackleApp.handleWebInterfaceCommand(jsPromptRequest.message);
      return JsPromptResponse(action: JsPromptResponseAction.CONFIRM, handledByClient: true, value: result);
    } else {
      return JsPromptResponse(handledByClient: false);
    }
  },
);

웹뷰에서 발생하는 자동 수집 이벤트 연동

Flutter SDK 2.26.0 이상, JavaScript SDK 11.51.0 이상 버전에서 지원하는 기능입니다.

웹뷰 내 웹사이트에서 발생하는 $page_view는 비활성화 상태입니다. 웹뷰 브릿지를 설정할 때 HackleWebViewConfig를 설정하여 자동 수집 이벤트를 활성화할 수 있습니다.

설정 옵션

설정
기능
기본값
지원 버전

automaticScreenTracking

웹사이트에서 발생하는 $page_view 수집 여부

false

2.26.0+

automaticEngagementTracking

웹사이트에서 발생하는 $engagement 수집 여부

false

2.28.0+

automaticRouteTracking

웹사이트에서 발생하는 페이지 정보 자동 수집 여부

true

2.28.0+

마지막 업데이트