处理Web视图

了解如何在移动应用程序中通过WebViews处理数据收集。

先决条件

  • 在安装和配置SDK的情况下成功构建和运行应用程序。

学习目标

在本课程中,您将执行以下操作:

  • 了解为什么您的应用程序中必须对WebViews进行特别考虑。
  • 了解防止跟踪问题所需的代码。

潜在的跟踪问题

如果您从应用程序的本机部分和应用程序内的WebView发送数据,则每个部分都会生成自己的Experience CloudID (ECID),这会导致断开连接的点击量和夸大的访问/访客数据。 有关ECID的详细信息,请参阅ECID概述

要解决该不良情况,请务必将用户的ECID从应用程序的本机部分传递到您可能想要在应用程序中使用的WebView。

WebView中使用的AEP Edge Identity扩展可收集当前ECID并将其添加到URL,而不是向Adobe发送请求以获取新ID。 然后,实施将使用此ECID来请求URL。

实施

导航到​ Luma > Luma > Views > Info > TermsOfServiceSheet,并在final class SwiftUIWebViewModel: ObservableObject类中找到func loadUrl()函数。 添加以下调用以处理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)")
}

AEPEdgeIdentity.Identity.getUrlVariables API为URL设置变量以包含所有相关信息,如ECID等。 在本例中,您使用的是本地文件,但相同的概念也适用于远程页面。

您可以在Edge Network身份扩展API参考指南中了解有关Identity.getUrlVariables API的更多信息。

验证

要执行代码,请执行以下操作:

  1. 查看设置说明部分以将模拟器或设备连接到Assurance。

  2. 转到应用程序中的​ 设置

  3. 点按​ View… ​按钮以显示​ Terms of Use

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

  4. 在Assurance UI中,查找来自​ com.adobe.griffon.mobile ​供应商的​ Edge标识响应URL变量 ​事件。

  5. 选择事件并查看​ ACPExtensionEventData ​对象中的​ urlvariable ​字段,确认URL中存在以下参数: adobe_mcmcmidmcorgid

    webview验证

    urvariables字段示例如下所示:

    • 原始(带转义字符)

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

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

很遗憾,调试Web会话的功能有限。 例如,您不能在浏览器中使用Adobe Experience Platform Debugger继续调试Webview会话。

NOTE
Platform Web SDK(版本2.11.0或更高版本)以及使用VisitorAPI.js时,支持通过这些URL参数拼接访客。
SUCCESS
现在,您已经将应用程序设置为在Webview中根据URL显示内容,该URL使用与Adobe Experience Platform Mobile SDK已颁发的ECID相同的ECID。
感谢您投入时间学习Adobe Experience Platform Mobile SDK。 如果您有任何疑问、希望分享一般反馈或有关于未来内容的建议,请在此Experience League社区讨论帖子上分享这些内容

下一个: 标识

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