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. Encontrará más información sobre el ECID en la descripció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 en 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 la función func loadUrl()
en la clase final class SwiftUIWebViewModel: ObservableObject
. 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)")
}
La API AEPEdgeIdentity.Identity.getUrlVariables
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 acerca de la API Identity.getUrlVariables
en la guía de referencia de la API Identity for Edge Network extension.
Validación
Para ejecutar el código:
-
Revise la sección instrucciones de configuración para conectar su simulador o dispositivo a Assurance.
-
Vaya a Configuración en la aplicación
-
Pulse el botón View… para mostrar Terms of Use.
{width="300"} {width="300"}
-
En la interfaz de usuario de Assurance, busque el evento Variables de URL de respuesta de identidad de Edge del proveedor com.adobe.griffon.mobile.
-
Seleccione el evento y revise el campo urlvariable en el objeto ACPExtensionsEventData, confirmando que los siguientes parámetros están presentes en la dirección URL:
adobe_mc
,mcmid
ymcorgid
.A continuación se muestra un campo
urvariables
de muestra:-
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