处理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,然后找到 func loadUrl() 中的函数 final class SwiftUIWebViewModel: ObservableObject 类。 添加以下调用以处理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等。 在本例中,您使用的是本地文件,但相同的概念也适用于远程页面。

您可了解有关 Identity.getUrlVariables 中的API Edge Network身份扩展API参考指南.

验证

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

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

  2. 转到 设置 在应用程序中

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

    +-------------+ | img-md | +=============+ | w-300 | +-------------+ | | +-------------++-------------+ | img-md |

    w-300
  4. 在Assurance UI中,查找 Edge Identity响应URL变量 来自的事件 com.adobe.griffon.mobile 供应商。

  5. 选择事件并查看 url变量 中的字段 ACPExtensionEventData 对象,确认URL中存在以下参数: adobe_mcmcmid、和 mcorgid.

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