웹 보기 처리
작성 대상:
- 초급
- 중간
- 개발자
모바일 앱에서 WebViews를 사용하여 데이터 수집을 처리하는 방법에 대해 알아봅니다.
전제 조건
- SDK가 설치 및 구성된 앱을 빌드하고 실행했습니다.
학습 목표
이 단원에서는 다음 작업을 수행합니다.
- 앱에서 WebViews에 대해 특별히 고려해야 하는 이유를 이해합니다.
- 추적 문제를 방지하는 데 필요한 코드를 이해합니다.
잠재적 추적 문제
앱의 기본 부분과 앱 내의 WebView에서 데이터를 보낼 때 별도의 (Experience Cloud Identity) ECID가 생성됩니다. 이렇게 별도의 ECID를 사용하면 히트 수가 끊기고 방문 및 방문자 데이터가 부풀려집니다. ECID에 대한 자세한 내용은 ECID 개요를 참조하십시오.
연결이 끊긴 히트와 부풀려진 데이터를 해결하려면 앱의 기본 부분에서 사용자의 ECID를 앱에서 사용할 수 있는 WebView에 전달해야 합니다.
WebView 내에서 사용된 AEP Edge Identity 확장은 새 ID에 대한 요청을 Adobe에 보내는 대신 현재 ECID를 수집하여 URL에 추가합니다. 그런 다음 구현은 이 ECID를 사용하여 URL을 요청합니다.
구현
웹 보기를 구현하려면 다음을 수행합니다.
Luma > Luma > Views > Info > TermsOfServiceSheet(으)로 이동하여 func loadUrl() 클래스에서 final class SwiftUIWebViewModel: ObservableObject 함수를 찾습니다. 웹 보기를 처리하기 위해 다음 호출을 추가합니다.
// Handle web view
AEPEdgeIdentity.Identity.getUrlVariables {(urlVariables, error) in
if let error = error {
print("Error with Webview", error)
return;
}
if let urlVariables: String = urlVariables {
urlString.append("?" + urlVariables)
guard let url = URL(string: urlString) else {
return
}
DispatchQueue.main.async {
self.webView.load(URLRequest(url: url))
}
}
Logger.aepMobileSDK.info("Successfully retrieved urlVariables for WebView, final URL: \(urlString)")
}
AEPEdgeIdentity.Identity.getUrlVariables API는 URL에 대해 ECID 등과 같은 모든 관련 정보를 포함하도록 변수를 설정합니다. 이 예에서는 로컬 파일을 사용하고 있지만 원격 페이지에도 동일한 개념이 적용됩니다.
Identity.getUrlVariablesEdge Network 확장 API 참조 안내서에서 API에 대해 자세히 알아볼 수 있습니다.
Android
fun loadUrl()에서 class WebViewModel: ViewModel() 함수를 찾습니다. 웹 보기를 처리하기 위해 다음 호출을 추가합니다.
// Handle web view
Identity.getUrlVariables {
urlVariables = it
val baseUrl = getHtmlFileUrl("tou.html")
val finalUrl = if (urlVariables.isNotEmpty()) {
"$baseUrl?$urlVariables"
} else {
baseUrl
}
Handler(Looper.getMainLooper()).post {
webView.loadUrl(finalUrl)
}
MobileSDK.shared.logInfo("TermsOfServiceSheet - loadUrl: Successfully loaded WebView with URL: $finalUrl")
}
Identity.getUrlVariables API는 URL에 대해 ECID 등과 같은 모든 관련 정보를 포함하도록 변수를 설정합니다. 이 예에서는 로컬 파일을 사용하고 있지만 원격 페이지에도 동일한 개념이 적용됩니다.
Identity.getUrlVariablesEdge Network 확장 API 참조 안내서에서 API에 대해 자세히 알아볼 수 있습니다.
앱에서 유효성 검사
코드를 실행하려면:
- 설치 지침 섹션을 검토하여 시뮬레이터 또는 장치를 Assurance에 연결하십시오.
- 앱의 설정(으)로 이동
- View… 단추를 탭하여 Terms of Use을(를) 표시합니다.




Assurance를 사용한 유효성 검사
-
Assurance UI에서 com.adobe.grifcon.mobile 공급업체에서 Edge ID 응답 URL 변수 이벤트를 찾습니다.
-
이벤트를 선택하고 ACPExtensionEventData 개체에서 urlvariable 필드를 검토하여 다음 매개 변수가 URL에 있는지 확인합니다.
adobe_mc,mcmid및mcorgid.
샘플
urvariables필드는 아래에서 볼 수 있습니다.-
원본(이스케이프 처리된 문자 포함)
adobe_mc=TS%3D1636526122%7CMCMID%3D79076670946787530005526183384271520749%7CMCORGID%3D7ABB3E6A5A7491460A495D61%40AdobeOrg -
미화
adobe_mc=TS=1636526122|MCMID=79076670946787530005526183384271520749|MCORGID=7ABB3E6A5A7491460A495D61@AdobeOrg
-
죄송합니다. 웹 세션 디버깅은 제한됩니다. 예를 들어 브라우저에서 Adobe Experience Platform Debugger을 사용하여 Webview 세션을 계속 디버깅할 수는 없습니다.
VisitorAPI.js을(를) 사용할 때 지원됩니다.다음: ID