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:

  1. Revise a seção instruções de configuração para conectar seu simulador ou dispositivo ao Assurance.

  2. Vá para as Configurações do aplicativo

  3. Toque no botão View… para mostrar Terms of Use.

    {width="300"} {width="300"}

  4. 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.

  5. 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 e mcorgid.

    validação de webview

    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.

NOTE
A compilação de visitantes por meio desses parâmetros de URL é suportada no SDK da Web da plataforma (versões 2.11.0 ou posterior) e ao usar VisitorAPI.js.
SUCCESS
Agora você configurou o aplicativo para mostrar conteúdo com base em um URL em uma visualização da Web usando a mesma ECID que a ECID já emitida pelo SDK do Adobe Experience Platform Mobile.
Obrigado por investir seu tempo aprendendo sobre o Adobe Experience Platform Mobile SDK. Se você tiver dúvidas, quiser compartilhar comentários gerais ou tiver sugestões sobre conteúdo futuro, compartilhe-os nesta postagem de Discussão da Comunidade Experience League

Próximo: Identidade

recommendation-more-help
9fed61f5-c338-47ad-8005-0b89a5f4af8b