Mendix 模块基本集成指南
本指南将引导您完成将 Pushwoosh 模块添加到现有 Mendix 原生移动应用的全过程,从 Marketplace 安装到在设备上接收通知。
前提条件
Anchor link to要将 Pushwoosh 模块集成到您的应用中,您需要以下内容:
上述列表中的 Device API Token(设备 API 令牌)此模块不需要。该小部件仅需要 Application Code(应用代码)。
您还需要以下内容:
- Mendix Studio Pro 11.12.3 或更高版本。该模块包是使用该版本构建的,Studio Pro 无法打开由比其自身更新的版本生成的包。
- 您的应用中需要有原生移动导航配置文件。
- 需要使用 Xcode 或 Android Studio 来生成原生构建。Make It Native 应用无法运行此模块,因为它不包含第三方原生代码。
1. 从 Marketplace 安装模块
Anchor link to在 Studio Pro 中,点击右上角的 Marketplace 图标,搜索 Pushwoosh,然后点击 Download。Studio Pro 会将一个名为 Pushwoosh 的模块添加到您的应用中。

无需安装其他任何东西。原生库在原生构建过程中从 npm 获取,并固定到模块测试时使用的确切版本。
2. 将 Pushwoosh events 小部件添加到您的主页
Anchor link toPushwoosh events 小部件会启动 SDK 并将推送通知转换为 nanoflow 事件。它不渲染任何内容,因此只需在原生移动导航配置文件中首先加载的页面上放置一次即可。
- 打开您的原生移动导航配置文件的主页。
- 将 Pushwoosh events 小部件拖到页面上。它位于工具箱的 Pushwoosh 类别中。
- 将 Application Code 属性设置为您在 Pushwoosh 控制面板中应用的应用代码。它看起来像
XXXXX-XXXXX。

保持 Register on load 启用,以便在应用打开时立即注册设备。如果您希望稍后在应用中某个对用户来说请求更有意义的时刻请求通知权限,可以将其关闭。请参阅下文的注册设备。
3. 配置原生构建
Anchor link toPushwoosh 会替换 Mendix 应用的内置推送通知,而不是与之并行工作。在 Native Mobile Builder 中,按如下方式设置功能:
- Push notifications:关闭。
- Firebase Android:开启,以便
google-services.json仍然被识别。
为 com.google.firebase.MESSAGING_EVENT 事件注册的两个通知服务会相互影响,导致通知无法送达。在 Android 上,FCM Sender ID 来自 google-services.json;它不会传递给模块。
在 iOS 上,将 Push Notifications 功能添加到 Signing & Capabilities 中生成的 Xcode 项目中,并按照 iOS 平台配置指南 中的说明将您的 APNs 密钥上传到 Pushwoosh 控制面板。
4. 注册设备
Anchor link to设备只有在向 Pushwoosh 注册后才能接收通知。有两种注册方式,您需要选择其中一种。
加载时注册。 保持小部件的 Register on load 属性启用。设备将在小部件加载后立即注册,在 iOS 上,系统权限提示会在此刻出现。
从 nanoflow 注册。 关闭 Register on load 并从您自己的 nanoflow 中调用 RegisterForPushNotifications 操作,例如在用户登录或接受同意屏幕后。该操作会返回一个字符串形式的 push token。

要停止向设备发送通知,请调用 UnregisterForPushNotifications。
5. 处理应用打开时收到的通知
Anchor link to当应用处于前台时收到通知,小部件会将通知写入您指定的属性中,然后触发 On push received 中的 nanoflow。
- 将 Message 设置为接收通知文本的字符串属性。
- 将 Payload 设置为接收完整 JSON 格式负载的字符串属性。
- 将 On push received 设置为对其作出反应的 nanoflow,例如显示消息或刷新列表的 nanoflow。
属性在 nanoflow 运行前被填充,因此 nanoflow 可以立即读取它们。

6. 处理打开的通知和深层链接
Anchor link to当用户点击通知时,小部件会触发 On push opened 中的 nanoflow,并填充相同的 Message 和 Payload 属性。
如果通知带有深层链接,小部件还会将链接写入 Deep link 中设置的属性,并触发 On deep link 中的 nanoflow。该 nanoflow 会在 On push opened 之外额外运行,因此用它来将用户路由到链接指向的页面。
7. 识别用户并设置标签
Anchor link to标签是将广播消息转变为定向消息的关键。从任何 nanoflow 中调用 SetTags,并以一个 JSON 对象作为其参数:
'{"Language":"en","Plan":"pro","Level":7}'使用您自己的用户标识符调用 SetUserId,将设备与个人而非设备关联起来。然后,所有在同一用户 ID 下注册的设备都可以通过一条消息触达。

8. 发布事件
Anchor link to事件驱动触发式营销活动和应用内消息。调用 PostEvent 并附上事件名称,以及可选的 JSON 属性对象:
'{"product":"Coffee grinder","price":129}'事件名称必须与 Pushwoosh 控制面板中配置的事件匹配。
9. 发送测试通知
Anchor link to将设备注册为测试设备,并从 Pushwoosh 控制面板向其发送一条消息。具体步骤请参阅测试您的集成。
当应用打开时收到的通知会由系统显示为警报,并且 On push received nanoflow 也会运行。要禁止系统警报并仅在 nanoflow 中处理通知,请调用 SetShowForegroundAlert 并将参数设置为 false。该操作仅在 iOS 上有效。
10. 当收不到通知时检查集成
Anchor link to当设备收不到通知时,请按顺序检查以下各项:
- 确认应用是自定义开发者应用或真实的原生构建。Make It Native 应用不包含该模块,因此所有 Pushwoosh 操作都会在其中静默失败。
- 确认原生构建的功能:Push notifications 关闭,Firebase Android 开启。
- 确认设备已注册。调用
GetPushToken并检查它是否返回一个 token 而不是空字符串。 - 确认平台已在 Pushwoosh 控制面板中配置,iOS 已上传 APNs 密钥,Android 已上传 Firebase 服务器密钥。
如果设备仍然无法访问,请调用 GetHwid 并使用该标识符提交支持工单。
后续步骤
Anchor link to- 模块操作参考 - 小部件属性和 JavaScript 操作,包括参数和返回值
- Mendix 常见问题解答 - 首次集成过程中出现的问题