WebViews verwerken

Leer hoe u gegevensverzameling kunt verwerken met WebViews in een mobiele app.

Vereisten

  • App met SDK's geïnstalleerd en geconfigureerd met succes gemaakt en uitgevoerd.

Leerdoelstellingen

In deze les zult u:

  • Begrijp waarom u speciale aandacht voor WebViews in uw app moet houden.
  • Begrijp de code die wordt vereist om volgende kwesties te verhinderen.

Mogelijke problemen met bijhouden

Afzonderlijke (Experience Cloud Identity) ECID's worden gegenereerd wanneer u gegevens verzendt vanuit het native gedeelte van uw app en vanuit een WebView in de app. Deze afzonderlijke ECID's leiden tot ongekoppelde treffers en tot opgeblazen bezoek- en bezoekersgegevens. Meer informatie over ECID kan in het overzicht ECIDworden gevonden.

Als u de verbroken resultaten en opgepompte gegevens wilt oplossen, moet u de ECID van de gebruiker doorgeven van het native gedeelte van uw app naar een WebView die u wellicht wilt gebruiken in uw app.

De AEP Edge Identity-extensie die in de WebView wordt gebruikt, verzamelt de huidige ECID en voegt deze toe aan de URL in plaats van een aanvraag voor een nieuwe id naar Adobe te verzenden. De implementatie gebruikt deze ECID vervolgens om de URL aan te vragen.

Implementatie

De webweergave implementeren:

iOS

Navigeer naar Luma > Luma > Views > Info > TermsOfServiceSheet en zoek de functie func loadUrl() in de klasse final class SwiftUIWebViewModel: ObservableObject . Voeg de volgende vraag toe om de Webmening te behandelen:

code language-swift
// 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)")
}

De AEPEdgeIdentity.Identity.getUrlVariablesAPI plaatst - omhoog de variabelen voor URL om alle relevante informatie, zoals ECID, en meer te bevatten. In het voorbeeld gebruikt u een lokaal bestand, maar op externe pagina's zijn dezelfde concepten van toepassing.

U kunt meer over Identity.getUrlVariables API in de Identiteit voor de verwijzingsgids van de uitbreiding van Edge Network APIleren.

Android

Navigeer aan Android ChevronDown > app > kotlin+java > com.adobe.luma.tutorial.android > views > WebViewModel, en bepaal de plaats van de fun loadUrl() functie in class WebViewModel: ViewModel(). Voeg de volgende vraag toe om de Webmening te behandelen:

code language-kotlin
// 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")
}

De Identity.getUrlVariablesAPI plaatst - omhoog de variabelen voor URL om alle relevante informatie, zoals ECID, en meer te bevatten. In het voorbeeld gebruikt u een lokaal bestand, maar op externe pagina's zijn dezelfde concepten van toepassing.

U kunt meer over Identity.getUrlVariables API in de Identiteit voor de verwijzingsgids van de uitbreiding van Edge Network APIleren.

Valideren in de app

De code uitvoeren:

  1. Herzie de sectie van opstellingsinstructiesom uw simulator of apparaat met Assurance te verbinden.
  2. Ga naar de Settings in de app
  3. Tik op de knop View… om de Terms of Use weer te geven.
iOS
{width="300"} {width="300"}
Android
{width="300"} {width="300"}

Valideren met Assurance

  1. Zoek in de gebruikersinterface van Assurance naar de gebeurtenis Edge Identity Response URL Variables van de com.adobe.griffon.mobile -leverancier.

  2. Selecteer de gebeurtenis en bekijk het veld urlvariable in het ACPExtensionEventData -object, waarbij de volgende parameters worden bevestigd: adobe_mc , mcmid en mcorgid .

    webview bevestiging {modal="regular"}

    Hieronder ziet u een voorbeeldveld urvariables :

    • Origineel (met escape-tekens)

      code language-html
      adobe_mc=TS%3D1636526122%7CMCMID%3D79076670946787530005526183384271520749%7CMCORGID%3D7ABB3E6A5A7491460A495D61%40AdobeOrg
      
    • Mooi

      code language-html
      adobe_mc=TS=1636526122|MCMID=79076670946787530005526183384271520749|MCORGID=7ABB3E6A5A7491460A495D61@AdobeOrg
      

Jammer genoeg, is het zuiveren van de Webzitting beperkt. U kunt bijvoorbeeld de Adobe Experience Platform Debugger in uw browser niet gebruiken om de foutopsporing voor de webweergavesessie voort te zetten.

NOTE
Bezoekersstitching via deze URL-parameters wordt ondersteund in Platform Web SDK (versies 2.11.0 of hoger) en bij gebruik van VisitorAPI.js .
SUCCESS
U hebt uw app nu ingesteld om inhoud weer te geven op basis van een URL in een webweergave met dezelfde ECID als de ECID die al is uitgegeven door de Adobe Experience Platform Mobile SDK.
Bedankt dat je tijd hebt geïnvesteerd in het leren van Adobe Experience Platform Mobile SDK. Als u vragen hebt, algemene terugkoppelen willen delen, of suggesties over toekomstige inhoud hebben, hen op deze Communautaire besprekingspost van Experience Leaguedelen

Volgende: Identiteit

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