创建和发送推送通知

了解如何使用Experience Platform Mobile SDK和Journey Optimizer为移动应用程序创建推送通知。

Journey Optimizer允许您创建历程并向目标受众发送消息。 在使用Journey Optimizer发送推送通知之前,您必须确保已进行适当的配置和集成。 要了解Journey Optimizer中的推送通知数据流,请参阅文档

架构 {modal="regular"}

NOTE
本课程是可选的,仅适用于希望发送推送通知的Journey Optimizer用户。

先决条件

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

  • 为Adobe Experience Platform设置应用程序。

  • 访问Journey Optimizer和足够的权限。 此外,您需要具有足够的权限才能使用以下Journey Optimizer功能。

    • 创建推送凭据。
    • 创建推送渠道配置。
    • 创建旅程。
    • 创建消息。
    • 创建消息预设。
  • 对于iOS,为​ 付费Apple开发人员帐户,该帐户具有创建证书、标识符和密钥的足够访问权限。

  • 对于Android,这是Google开发人员帐户,具有创建证书和密钥的足够访问权限。

  • 用于测试的物理iOS或Android设备或模拟器。

学习目标

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

  • 向Apple推送通知服务(APN)注册应用程序ID。
  • 在Journey Optimizer中创建渠道配置。
  • 更新您的架构以包含推送消息字段。
  • 安装和配置Journey Optimizer标记扩展。
  • 更新您的应用程序以注册Journey Optimizer标记扩展。
  • 验证Assurance中的设置。
  • 从Assurance发送测试消息
  • 在Journey Optimizer中定义您自己的推送通知事件、历程和体验。
  • 从应用程序内发送您自己的推送通知。

设置

TIP
如果您已将环境设置为Journey Optimizer应用程序内消息传送课程的一部分,则您可能已执行了此设置部分中的某些步骤。

创建推送凭据

对于推送通知,您必须首先为推送通知注册应用程序。

iOS

以下步骤并非特定于Adobe Experience Cloud,而是旨在引导您完成APN配置。

  1. 在Apple开发人员门户中,导航到​ 密钥

  2. 要创建密钥,请选择​ +

    创建新键 {modal="regular"}

  3. 提供​ 密钥名称

  4. 选择​ Apple推送通知服务 (APN),然后选择​ 配置

    1. 在​ 配置键 ​屏幕中,从​ 环境 ​下拉菜单中选择​ 沙盒和生产
    2. 选择​ 保存
  5. 选择​ 继续

    配置新密钥 {modal="regular"}

  6. 查看配置并选择​ 注册

  7. 下载.p8私钥。 当您配置Journey Optimizer推送凭据时,将在下一个练习中使用它。

  8. 记下​ 密钥ID。 当您配置Journey Optimizer推送凭据时,将在下一个练习中使用它。

  9. 记下​ 团队ID。 当您配置Journey Optimizer推送凭据时,将在下一个练习中使用它。 团队ID可在屏幕右上角登录名旁边找到。
    键详细信息 {modal="regular"}

其他文档可在此处找到。

Android

以下步骤并非特定于Adobe Experience Cloud,而是旨在引导您完成Firebase配置。

  1. 访问Firebase控制台。

  2. 选择​ 创建Firebase项目

    1. 输入​ 项目名称
    2. 在​ 创建项目 ​中选择​ 继续 - 让我们为您的项目起一个名称。 例如:Luma Android App.
    3. 在Firebase中禁用​ Gemini,并在​ 创建项目 ​中选择​ 继续 - Firebase项目的AI帮助
    4. 为此项目​ 禁用 Google Analytics,并在​ 为您的Firebase项目创建项目 - Google Analytics ​中选择​ 继续
    5. 选择​ 创建项目
    6. 项目就绪后,选择​ 继续
  3. 返回到Firebase控制台,确保在顶部选择您的项目。 例如,Luma Android应用程序

    Firebase控制台 {modal="regular"}

  4. 选择 设置 > 项目设置

  5. 在​ 项目设置 ​中,选择​ 添加应用程序

    1. 在​ 将Firebase添加到应用程序 ​中,选择​ Android ​作为平台。

    2. 在​ 将Firebase添加到您的Android应用程序中:

      1. 在步骤1,注册应用程序

        1. 输入Android包名称,该名称与您的应用程序标识符类似。 例如:com.adobe.luma.tutorial.android
        2. 输入可选的​ 应用程序昵称
        3. 选择​ 注册应用程序
      2. 在步骤2中,下载配置文件,然后添加该文件。

        1. 选择 下载 下载google-services.json。 当您构建自己的Android应用程序版本时,您应该将示例Android Studio项目中的当前google-services.json文件替换为由此新应用程序配置生成的文件版本。
          其他步骤已在示例应用程序中完成。

    您的屏幕应如下所示:

    Firebase控制台 {modal="regular"}

  6. 在​ 项目设置 ​中,选择​ 服务帐户

  7. 选择​ 生成新的私钥。 已生成luma-android-app-firebase-adminsdk-xxxx-xxxxxxxx.json文件。 将此文件存储在安全位置,因为您以后需要此文件。

有关详细信息,请参阅Firebase开发人员文档

在数据收集中添加您的应用程序推送凭据

接下来,您需要添加移动应用程序推送凭据,以授权Adobe代表您发送推送通知。 您可以在数据收集或Journey Optimizer中添加推送凭据。 在本教程中,将使用数据收集界面。 然后,推送凭据将链接到Journey Optimizer中的渠道配置。

  1. 在数据收集中,选择​ 应用程序表面

  2. 选择​ 创建应用程序表面

  3. 在​ 创建应用程序表面 ​界面中:

    1. 输入​ 名称

    2. 如果要发送Apple iOS的推送通知,请选择​ iOS

      1. 输入您的​ 应用程序ID,例如com.adobe.luma.tutorial.swiftui
      2. 选择沙盒(可选)。
      3. 启用​ 推送凭据
      4. 将保存的.p8私钥文件拖放到​ 上拖放您的文件
      5. 输入​ 密钥ID
      6. 输入​ 团队ID
    3. 如果要发送Android的推送通知,请选择​ Android

      1. 输入您的​ 应用程序ID,例如com.adobe.luma.tutorial.android
      2. 选择沙盒(可选)。
      3. 启用​ 推送凭据
      4. 将保存的luma-android-app-firebase-adminsdk-xxxx-xxxxxxxx.json文件拖放到​ 上拖放您的文件

    在Journey Optimizer中新建推送凭据配置 {modal="regular"}

  4. 选择 Save。如果所有信息都正确,则表示您已经创建了推送凭据来与渠道配置关联。

在Journey Optimizer中创建推送的渠道配置

创建推送凭据配置后,必须创建配置才能从Journey Optimizer发送推送通知。

  1. 在Journey Optimizer界面中,打开​ 渠道 > 常规设置 > 渠道配置 ​菜单,然后选择​ 创建渠道配置

    创建新的渠道配置 {modal="regular"}

  2. 输入配置的名称和说明(可选)。

    note note
    NOTE
    名称必须以字母(A-Z)开头。 它只能包含字母数字字符。 您还可以使用下划线 _、点 . 和连字符 - 符号。
  3. 要为配置分配自定义或核心数据使用标签,您可以选择​ 管理访问权限了解有关对象级访问控制(OLAC)的更多信息

  4. 选择​ 推送 ​渠道。

  5. 选择​ 营销操作 ​以使用此配置将同意策略与消息关联。 所有与营销活动相关的同意政策都可以用来尊重客户的偏好。 了解有关营销操作的更多信息

  6. 选择您的​ 平台。 您可以为渠道配置同时配置​ iOS ​和​ Android

  7. 选择您之前用于定义推送凭据的相应​ 应用程序ID。 例如,iOS的​ com.adobe.luma.tutorial.swiftui ​和Android的​ com.adobe.luma.tutorial.android。 绿色 CheckmarkCircle 表示有效的推送凭据与通道配置相关联。

    推送渠道配置 {modal="regular"}

  8. 选择​ 提交 ​以保存更改。

更新数据流配置

要确保将从您的移动应用程序发送到Edge Network的数据转发到Journey Optimizer,请更新您的Experience Edge配置。

  1. 在数据收集UI中,选择​ 数据流,然后选择您的数据流,例如​ Luma Mobile App

  2. Experience Platform 选择​ 更多,然后从上下文菜单中选择 编辑 编辑

  3. 在​ 数据流 > 文件夹 > Adobe Experience Platform ​屏幕中:

    1. 如果尚未选择,请从​ 配置文件数据集 ​中选择​ AJO推送配置文件数据集。 使用MobileCore.setPushIdentifier API调用时需要此配置文件数据集(请参阅注册推送通知的设备令牌)。 此选择还可确保将推送通知的唯一标识符(即推送标识符)存储为用户配置文件的一部分。

    2. 已选择​ Adobe Journey Optimizer。 有关详细信息,请参阅Adobe Experience Platform设置

    3. 要保存数据流配置,请选择​ 保存

    AEP数据流配置 {modal="regular"}

安装Journey Optimizer标记扩展

要使您的应用程序能够与Journey Optimizer配合使用,必须更新标记属性。

  1. 导航到​ 标记 > 扩展 > 目录

  2. 打开您的属性,例如​ Luma Mobile App Tutorial

  3. 选择​ 目录

  4. 搜索​ Adobe Journey Optimizer ​扩展。

  5. 安装扩展。

  6. 在​ 安装扩展 ​对话框中

    1. 选择一个环境,例如​ 开发

    2. 从​ 事件数据集 ​列表中选择​ AJO推送跟踪体验事件数据集 ​数据集。

    3. 选择​ 保存到库并生成

      AJO扩展设置 {modal="regular"}

NOTE
如果您未看到​ AJO推送跟踪体验事件数据集 ​作为一个选项,请联系客户关怀团队。

使用Assurance验证设置

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

  2. 在Assurance用户界面中,选择​ 配置
    配置click {modal="regular"}

  3. 选择 推送调试 旁边的​ 加号

  4. 选择​ 保存
    保存 {modal="regular"}

  5. 从左侧导航中选择​ 推送调试

  6. 选择​ 验证设置 ​选项卡。

  7. 从​ 客户端 ​列表中选择您的设备。

  8. 确认您没有收到任何错误。
    验证 {modal="regular"}

  9. 选择​ 发送测试推送 ​选项卡。

  10. (可选)更改​ Title ​和​ Body ​的默认详细信息,并确保提供应用程序需要的所有参数,如​ Advanced > Notification Channel(Android的必需参数,例如LUMA_CHANNEL_ID)。

  11. 选择 错误 发送测试推送通知

  12. 检查​ 测试结果

    从Assurance测试推送通知 {modal="regular"}

  13. 您应会看到测试推送通知显示在应用程序中。

iOS
{width="300"}
Android
{width="300"}

签名

IMPORTANT
需要签署iOS应用才能在iOS上发送推送通知,并且​ 需要付费Apple开发人员帐户。 您无需签署Android应用程序即可发送推送通知。

要更新应用程序的签名,请执行以下操作:

  1. 在Xcode中转到您的应用程序。

  2. 在项目导航器中选择​ Luma

  3. 选择​ Luma ​目标。

  4. 选择​ 签名和功能 ​选项卡。

  5. 配置​ 自动管理签名团队 ​和​ 捆绑包标识符,或者使用您的特定Apple开发配置详细信息。

    note important
    IMPORTANT
    请确保使用​_唯一_​捆绑标识符并替换com.adobe.luma.tutorial.swiftui捆绑标识符,因为每个捆绑标识符必须是唯一的。 通常,您使用反向DNS格式来打包的ID字符串,如com.organization.brand.uniqueidentifier。 例如,本教程的完成版本使用com.adobe.luma.tutorial.swiftui

    Xcode签名功能 {modal="regular"}

向应用程序添加推送通知功能

IMPORTANT
要在iOS应用程序中实施和测试推送通知,您必须拥有​ 付费 Apple开发人员帐户。
iOS
  1. 在Xcode中,从​ Luma TARGETS 列表中选择,选择​ 签名和功能 ​选项卡,选择​ +功能 ​按钮,然后选择​ 推送通知。 此选项使您的应用程序能够接收推送通知。

  2. 接下来,您必须向应用程序添加通知扩展。 返回​ General ​选项卡并选择​ 目标 ​部分底部的​ + ​图标。

  3. 系统将提示您为新目标选择模板。 选择​ 通知服务扩展,然后选择​ 下一步

  4. 在下一个窗口中,使用NotificationExtension作为扩展的名称,然后单击​ 完成 ​按钮。

现在,您应该将推送通知扩展添加到应用程序中,类似于以下屏幕。

Pusn通知扩展 {modal="regular"}

Android

已为推送通知设置了Android Studio项目。 您无需执行其他步骤即可为推送通知启用Android版本的Luma应用程序。 有关详细信息,请参阅关于通知

Android推送通知要求您在应用程序中和在发送推送通知时定义通知渠道id。 Android Luma应用中使用的渠道通知ID为LUMA_CHANNEL ID

在应用程序中实施Journey Optimizer

如前面的课程中所述,安装移动标记扩展仅提供配置。 接下来,您必须安装并注册消息传送SDK。 如果未清除这些步骤,请查看安装SDK部分。

NOTE
如果您已完成安装SDK部分,则表明已安装SDK,您可以跳过此步骤。
iOS
  1. 在Xcode中,确保将AEP消息添加到包依赖关系中的包列表中。 请参阅Swift包管理器

  2. 在Xcode项目导航器中导航到​ Luma > Luma > AppDelegate

  3. 确保AEPMessaging是导入列表的一部分。

    import AEPMessaging

  4. 请确保Messaging.self是正在注册的扩展数组的一部分。

    code language-swift
    let extensions = [
        AEPIdentity.Identity.self,
        Lifecycle.self,
        Signal.self,
        Edge.self,
        AEPEdgeIdentity.Identity.self,
        Consent.self,
        UserProfile.self,
        Places.self,
        Messaging.self,
        Optimize.self,
        Assurance.self
    ]
    
Android
  1. 在Android Studio中,确保aepsdk-messing-android是​ Android:app ChevronDown ​Gradle脚本 中 build.gradle.kts (模块​ ​的依赖项的一部分。 查看Gradle

  2. 在Android Studio项目导航器中导航到​ Android ChevronDown > app > kotlin+java > com.adobe.luma.tutorial.android > LumaApplication

  3. 确保com.adobe.marketing.mobile.Messaging是导入列表的一部分。

    import import com.adobe.marketing.mobile.Messaging

  4. 请确保Messaging.EXTENSION是正在注册的扩展数组的一部分。

    code language-kotlin
    val extensions = listOf(
        Identity.EXTENSION,
        Lifecycle.EXTENSION,
        Signal.EXTENSION,
        Edge.EXTENSION,
        Consent.EXTENSION,
        UserProfile.EXTENSION,
        Places.EXTENSION,
        Messaging.EXTENSION,
        Optimize.EXTENSION,
        Assurance.EXTENSION
    )
    

注册推送通知的设备令牌

您需要注册推送通知的设备令牌。

iOS
  1. 在Xcode项目导航器中导航到​ Luma > Luma > AppDelegate

  2. MobileCore.setPushIdentifier API添加到func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)函数。

    code language-swift
    // Send push token to Mobile SDK
    MobileCore.setPushIdentifier(deviceToken)
    

    此函数检索与安装应用程序的设备特有的设备令牌。 然后,使用您设置的依赖于Apple推送通知服务(APN)的配置来设置推送通知投放令牌。

Android
  1. 在Android Studio项目导航器中导航到​ Android ChevronDown > app > kotlin+java > com.adobe.luma.tutorial.android > LumaApplication

  2. MobileCore.setPushIdentifier中将override fun onCreate() API添加到class LumaAplication : Application中的FirebaseMessaging.getInstance().token.addOnCompleteListener函数。

    code language-kotlin
    // Send push token to Mobile SDK
    MobileCore.setPushIdentifier(token)
    

    此函数检索与安装应用程序的设备特有的设备令牌。 然后,使用您设置的依赖于Firebase Cloud Messaging (FCM)的配置来设置推送通知投放令牌。

IMPORTANT
仅适用于iOSMobileCore.updateConfigurationWith(configDict: ["messaging.useSandbox": true])确定推送通知是使用APNs沙盒还是生产服务器来发送推送通知。 在模拟器中或在设备上测试您的应用程序时,请确保messaging.useSandbox设置为true,以便您接收推送通知。 在使用Apple的Testflight部署应用程序以进行生产测试时,请确保将messaging.useSandbox设置为false,否则生产应用程序将无法接收推送通知。


​>Firebase Cloud Messaging (FCM) ​支持推送通知沙盒的概念。

创建自己的推送通知

要创建自己的推送通知,您必须在Journey Optimizer中定义一个事件,以触发负责发送推送通知的历程。

更新您的架构

您即将定义一个新的事件类型,该类型还不能作为您在架构中定义的事件列表的一部分使用。 您稍后在触发推送通知时使用此事件类型。

  1. 在Journey Optimizer UI中,从左边栏中选择​ 架构

  2. 在选项卡栏中选择​ 浏览

  3. 选择您的架构,例如​ Luma Mobile App Event Schema ​以将其打开。

  4. 在架构编辑器中:

    1. 选择​ eventType ​字段。

    2. 在​ 字段属性 ​窗格中,向下滚动以查看事件类型可能值的列表。 选择​ 添加行,并将application.test添加为​ VALUE,将Test event for push notification添加为DISPLAY NAME

    3. 选择​ 应用

    4. 选择​ 保存

      向事件类型添加值 {modal="regular"}

定义事件

Journey Optimizer中的事件允许您触发发送消息的历程,例如推送通知。 有关详细信息,请参阅关于事件

  1. 在Journey Optimizer UI中,从左边栏中选择​ 配置

  2. 在​ 仪表板 ​屏幕中,选择​ 事件 ​拼贴中的​ 管理 ​按钮。

  3. 在​ 事件 ​屏幕中,选择​ 创建事件

  4. 在​ 编辑事件event1 ​窗格中:

    1. 输入LumaTestEvent作为事件的​ Name

    2. 提供​ 描述,例如Test event to trigger push notifications in Luma app

    3. 选择您之前在架构​ 列表创建XDM架构 ​中创建的移动应用体验事件架构,例如​ Luma Mobile App Event Schema v.1

    4. 选择 字段 列表旁边的​ 编辑

      编辑事件步骤1 {modal="regular"}

      在​ 字段 ​对话框中,确保选择以下字段(位于始终选择的默认字段之上(_idid ​和​ 时间戳)。 您可以使用下拉列表在​ SelectedAll ​和​ Primary ​之间切换,或者使用 Search 字段。

      • 已识别应用程序(ID)
      • 事件类型(eventType)
      • 主要(主要)

      编辑事件字段 {modal="regular"}

      然后选择​ 确定

    5. 选择 事件ID条件 字段旁边的​ 编辑

      1. 在​ 添加事件ID条件 ​对话框中,将​ 事件类型(eventType) ​拖放到​ 将元素拖放到此处

      2. 在弹出窗口中,滚动到底部并选择​ application.test(这是您之前作为更新架构的一部分添加到事件类型列表中的事件类型)。 然后向上滚动到顶部并选择​ 确定

      3. 选择​ 确定 ​以保存条件。

        编辑事件条件 {modal="regular"}

    6. 从​ 命名空间 ​列表中选择​ ECID (ECID)。 自动使用​ 映射identityMap ​的键ECID的第一个元素的ID填充​ 配置文件标识符 ​字段。

    7. 选择​ 保存
      编辑事件步骤2 {modal="regular"}

您刚刚创建了一个事件配置,该配置基于您之前在本教程中创建的“移动应用程序体验事件”架构。 此事件配置将使用您的特定事件类型(application.test)筛选传入的体验事件,因此,只有从该移动应用程序发起的特定类型的事件才会触发您在下一步中构建的历程。 在现实场景中,您可能希望从外部服务发送推送通知。 但是,同样的概念也适用:从外部应用程序将体验事件发送到Experience Platform,该事件具有特定字段,您可以在这些事件触发历程之前对其应用条件。

创建历程

您的下一步是创建在收到相应的事件时触发推送通知发送的历程。

  1. 在Journey Optimizer UI中,从左边栏中选择​ 历程

  2. 选择​ 创建历程

  3. 在​ 历程属性 ​面板中:

    1. 输入历程的​ 名称,例如Luma - Test Push Notification Journey

    2. 输入历程的​ 描述,例如Journey for test push notifications in Luma mobile app

    3. 确保已选择​ 允许重新进入,并将​ 重新进入等待期 ​设置为​ 30

    4. 选择​ 确定

      历程属性 {modal="regular"}

  4. 返回历程画布,从​ EVENTS,将 Event LumaTestEvent ​拖放到画布上,其中显示​ 选择一个进入事件或读取受众活动

    • 在​ Events: LumaTestEvent ​面板中,输入​ 标签,例如Luma Test Event
  5. 从​ ACTIONS ​下拉列表中,将 推送 推送 ​拖放到显示于 活动右侧的 添加​ LumaTestEvent ​上。 在​ 操作:推送 ​窗格中:

    1. 提供​ 标签,例如Luma Test Push Notification,提供​ 描述,例如Test push notification for Luma mobile app,从​ 类别 ​列表中选择​ 事务型,并从​ Luma ​推送表面​ 中选择

    2. 选择 编辑 编辑内容 ​以开始编辑实际的推送通知。

      推送属性 {modal="regular"}

      在​ 推送通知 ​编辑器中:

      1. 输入​ 标题,例如Luma Test Push Notification,并输入​ 正文,例如Test push notification for Luma mobile app

      2. 或者,您可以在​ 添加媒体 ​中输入指向图像(.png或.jpg)的链接。 如果这样做,则图像是推送通知的一部分。 请注意,如果这样做,您需要注意在移动设备应用程序中正确处理图像。

      3. 要保存并退出编辑器,请选择 左V形

        推送编辑器 {modal="regular"}

    3. 要保存并完成推送通知定义,请选择​ 确定

  6. 您的历程应如下所示。 选择​ 发布 ​以发布并激活您的历程。
    已完成历程 {modal="regular"}

触发推送通知

您已具备发送推送通知的所有要素。 剩下的问题是如何触发此推送通知。 实质上,它与您之前看到的相同:只需发送具有适当有效负载的体验事件(如Events中的)。

此时,您即将发送的体验事件未构建为简单的XDM词典。 您即将使用表示推送通知有效负载的struct。 定义专用数据类型是如何在应用程序中实施构建体验事件有效负载的替代方法。

请注意,仅出于说明目的,您才会从应用程序内发送推送通知。 更典型的情况是,您从其他应用程序或服务发送体验事件(触发推送通知历程)。

iOS
  1. 在Xcode项目导航器中导航到​ Luma > Luma > 模型 > XDM > TestPushPayload,并检查代码。

    code language-swift
    import Foundation
    
    // MARK: - TestPush
    struct TestPushPayload: Codable {
       let application: Application
       let eventType: String
    }
    
    // MARK: - Application
    struct Application: Codable {
       let id: String
    }
    

    该代码呈现了您要发送的以下简单有效负载,以触发测试推送通知历程。

    code language-json
    {
       "eventType": string,
       "application" : [
           "id": string
       ]
    }
    
  2. 在Xcode项目导航器中导航到​ Luma > Luma > Utils > MobileSDK,并将以下代码添加到func sendTestPushEvent(applicationId: String, eventType: String)

    code language-swift
    // Create payload and send experience event
    Task {
        let testPushPayload = TestPushPayload(
            application: Application(
                id: applicationId
            ),
            eventType: eventType
        )
        // send the final experience event
        await sendExperienceEvent(
            xdm: testPushPayload.asDictionary() ?? [:]
        )
    }
    

    此代码使用提供给函数(testPushPayloadapplicationId)的参数创建一个eventType实例,然后在将有效负载转换为字典时调用sendExperienceEvent。 此代码还通过使用Swift的基于awaitasync的并发模型来考虑调用Adobe Experience Platform SDK的异步方面。

  3. 在Xcode项目导航器中导航到​ Luma > Luma > Views > General > ConfigView。 在推送通知按钮定义中,添加以下代码以发送测试推送通知体验事件有效负载,以便在点击该按钮时触发您的历程。

    code language-swift
    // Setting parameters and calling function to send push notification
    Task {
        let eventType = testPushEventType
        let applicationId = Bundle.main.bundleIdentifier ?? "No bundle id found"
        await MobileSDK.shared.sendTestPushEvent(applicationId: applicationId, eventType: eventType)
    }
    
Android
  1. 在Android Studio导航器中导航到​ Android ChevronDown > app > kotlin+java > com.adobe.luma.tutorial.android > xdm > TestPushPayload.kt,并检查代码。

    code language-kotlin
    import com.google.gson.annotations.SerializedName
    
    data class TestPushPayload(
       @SerializedName("application") val application: Application,
       @SerializedName("eventType") val eventType: String
    ) {
       fun asMap(): Map<String, Any> {
          return mapOf(
                "application" to application.asMap(),
                "eventType" to eventType
          )
       }
    }
    
    data class Application(
       @SerializedName("id") val id: String
    ) {
       fun asMap(): Map<String, Any> {
          return mapOf(
                "id" to id
          )
       }
    }
    

    该代码呈现了您要发送的以下简单有效负载,以触发测试推送通知历程。

    code language-json
    {
       "eventType": string,
       "application" : [
           "id": string
       ]
    }
    
  2. 在Android Studio导航器中导航到​ Android ChevronDown > app > kotlin+java > com.adobe.luma.tutorial.android > 模型 > MobileSDK,并将以下代码添加到func sendTestPushEvent(applicationId: String, eventType: String)

    code language-kotlin
    // Create payload and send experience event
    val testPushPayload = TestPushPayload(
       Application(applicationId),
       eventType
    )
    sendExperienceEvent(testPushPayload.asMap())
    

    此代码使用提供给函数(testPushPayloadapplicationId)的参数创建一个eventType实例,然后在将有效负载转换为映射时调用sendExperienceEvent

  3. 在Android Studio导航器中导航到​ Android ChevronDown > app > kotlin+java > com.adobe.luma.android.tutorial > views > ConfigView.kt。 在推送通知按钮定义中,添加以下代码以发送测试推送通知体验事件有效负载,以便在点击该按钮时触发您的历程。

    code language-kotlin
    // Setting parameters and calling function to send push notification
    val eventType = testPushEventType
    val applicationId = context.packageName
    scope.launch {
          MobileSDK.shared.sendTestPushEvent(
             applicationId,
             eventType
          )
    }
    

使用应用程序进行验证

要验证推送通知事件和历程,请执行以下操作:

iOS
  1. 使用 Play ,在模拟器中或在Xcode的物理设备上重建并运行应用程序。

  2. 转到​ 设置 ​选项卡。

  3. 点按​ 推送通知

    您会看到推送通知显示在应用程序顶部。

    {width="300"}

Android
  1. 使用 Play ,在模拟器中或在Android Studio的物理设备上重建并运行应用程序。

  2. 转到​ 设置 ​选项卡。

  3. 点按​ 推送通知

    您会看到推送通知显示在应用程序顶部。

    {width="300"}

如何在应用程序本身中处理和显示推送通知不属于此部分的主题。 每个平台都实施处理并以特定方式显示通知。 有关详细信息,请参阅:

后续步骤

现在,您应该拥有在应用程序中处理推送通知的所有工具。 例如,您可以在Journey Optimizer中构建一个历程,当应用程序用户登录时,该历程会发送欢迎推送通知。 或确认推送通知(当用户在该应用程序中购买产品时)。 或输入位置的地理围栏(如您在位置课程中所见)。

SUCCESS
现在,您已使用适用于Experience Platform Mobile SDK的Journey Optimizer和Journey Optimizer扩展为推送通知启用应用程序。
感谢您投入时间学习Adobe Experience Platform Mobile SDK。 如果您有任何疑问、希望分享一般反馈或有关于未来内容的建议,请在此Experience League社区讨论帖子上分享这些内容。

下一步: 创建并发送应用程序内消息

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