Manipular WebViews
Saiba como lidar com a coleta de dados com WebViews em um aplicativo móvel.
Pré-requisitos
- O aplicativo com SDKs instalados e configurados foi criado e executado com sucesso.
Objetivos de aprendizagem
Nesta lição, você vai:
- Entenda por que você deve considerar especialmente os WebViews no aplicativo.
- Entenda o código necessário para evitar problemas de rastreamento.
Possíveis problemas de rastreamento
Se você enviar dados da parte nativa do aplicativo e de um WebView dentro do aplicativo, cada um gera sua própria ID de Experience Cloud (ECID), o que resulta em ocorrências desconectadas e dados inflacionados de visitas/visitantes. Mais informações sobre a ECID podem ser encontradas na visão geral da ECID.
Para resolver essa situação indesejável, é importante transmitir a ECID do usuário da parte nativa do aplicativo para um WebView que você possa desejar usar no aplicativo.
A extensão de identidade da AEP Edge usada no WebView coleta a ECID atual e a adiciona ao URL em vez de enviar uma solicitação ao Adobe para obter uma nova ID. A implementação usa essa ECID para solicitar o URL.
Implementação
Navegue até Luma > Luma > Views > Info > TermsOfServiceSheet e localize a função func loadUrl()
na classe final class SwiftUIWebViewModel: ObservableObject
. Adicione a seguinte chamada para lidar com a exibição da 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)")
}
A API AEPEdgeIdentity.Identity.getUrlVariables
configura as variáveis para que a URL contenha todas as informações relevantes, como ECID e muito mais. No exemplo, você está usando um arquivo local, mas os mesmos conceitos se aplicam a páginas remotas.
Você pode saber mais sobre a API Identity.getUrlVariables
no Guia de referência de API de Identidade para extensão do Edge Network.
Validar
Para executar o código:
-
Revise a seção instruções de configuração para conectar seu simulador ou dispositivo ao Assurance.
-
Vá para as Configurações do aplicativo
-
Toque no botão View… para mostrar Terms of Use.
{width="300"} {width="300"}
-
Na interface do usuário do Assurance, procure o evento Variáveis de URL de resposta de identidade da Edge do fornecedor com.adobe.griffon.mobile.
-
Selecione o evento e revise o campo urlvariable no objeto ACPExtensionEventData, confirmando se os seguintes parâmetros estão presentes na URL:
adobe_mc
,mcmid
emcorgid
.Um exemplo de campo
urvariables
pode ser visto abaixo:-
Original (com caracteres de escape)
code language-html adobe_mc=TS%3D1636526122%7CMCMID%3D79076670946787530005526183384271520749%7CMCORGID%3D7ABB3E6A5A7491460A495D61%40AdobeOrg
-
Embelado
code language-html adobe_mc=TS=1636526122|MCMID=79076670946787530005526183384271520749|MCORGID=7ABB3E6A5A7491460A495D61@AdobeOrg
-
Infelizmente, a depuração da sessão da Web é limitada. Por exemplo, você não pode usar o Adobe Experience Platform Debugger no navegador para continuar a depurar a sessão do webview.
VisitorAPI.js
.Próximo: Identidade