Administrar vistas web
Obtenga información sobre cómo gestionar la recopilación de datos con WebViews en una aplicación móvil.
Requisitos previos
- La aplicación se ha creado y ejecutado correctamente con los SDK instalados y configurados.
Objetivos de aprendizaje
En esta lección, deberá hacer lo siguiente:
- Comprenda por qué debe tener especial consideración para WebViews en la aplicación.
- Comprenda el código necesario para evitar problemas de seguimiento.
Posibles problemas de seguimiento
Si envía datos desde la parte nativa de la aplicación y desde un WebView dentro de la aplicación, cada uno genera su propio ID de Experience Cloud (ECID), lo que provoca que se desconecten las visitas y se inflen los datos de visitas o visitantes. Puede encontrar más información sobre el ECID en la Información general de ECID.
Para solucionar esta situación no deseada, es importante pasar el ECID del usuario desde la parte nativa de la aplicación a un WebView que pueda querer utilizar en la aplicación.
La extensión de identidad de Edge de AEP utilizada dentro de WebView recopila el ECID actual y lo añade a la dirección URL en lugar de enviar una solicitud al Adobe para obtener un nuevo ID. A continuación, la implementación utiliza este ECID para solicitar la dirección URL.
Implementación
Vaya a Luma > Luma > Views > Info > TermsOfServiceSheet y busque el func loadUrl()
función en la final class SwiftUIWebViewModel: ObservableObject
clase. Agregue la siguiente llamada para administrar el visor web:
// 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)")
}
El AEPEdgeIdentity.Identity.getUrlVariables
La API configura las variables para que la dirección URL contenga toda la información relevante, como ECID, etc. En el ejemplo se utiliza un archivo local, pero los mismos conceptos se aplican a las páginas remotas.
Puede obtener más información sobre Identity.getUrlVariables
API en Guía de referencia de API de extensión de identidad para red perimetral.
Validación
Para ejecutar el código:
-
Revise la instrucciones de configuración para conectar el simulador o dispositivo a Assurance.
-
Vaya a la Configuración en la aplicación
-
Pulse el botón View… para mostrar el Terms of Use.
-
En la interfaz de usuario de Assurance, busque Variables de URL de respuesta de identidad de Edge evento de la com.adobe.griffon.mobile proveedor.
-
Seleccione el evento y revise la urlvariable en el campo ACPExtensionEventData , confirmando que los siguientes parámetros están presentes en la dirección URL:
adobe_mc
,mcmid
, ymcorgid
.Una muestra
urvariables
Campo visible a continuación:-
Original (con caracteres de escape)
code language-html adobe_mc=TS%3D1636526122%7CMCMID%3D79076670946787530005526183384271520749%7CMCORGID%3D7ABB3E6A5A7491460A495D61%40AdobeOrg
-
Embellecido
code language-html adobe_mc=TS=1636526122|MCMID=79076670946787530005526183384271520749|MCORGID=7ABB3E6A5A7491460A495D61@AdobeOrg
-
Lamentablemente, la depuración de la sesión web es limitada. Por ejemplo, no puede utilizar el Adobe Experience Platform Debugger del explorador para continuar depurando la sesión de vista web.
VisitorAPI.js
.Siguiente: Identidad