Mendix 常见问题解答
Pushwoosh 模块需要哪个 Studio Pro 版本?
Anchor link toStudio Pro 11.12.3 或更高版本。该模块包是使用该版本的模型格式构建的,而 Studio Pro 会拒绝打开由比其自身更新的版本生成的包。
不建议使用更低版本的第二个原因是,Mendix 会将 Studio Pro、原生模板和 React Native 一起更新,因此 Studio Pro 版本决定了您的应用运行在哪个 React Native 版本上,而该模块是基于 React Native 0.84 构建的。权威的映射关系位于原生模板仓库中的 mendix_version.json 文件。
为什么添加模块后没有任何反应?
Anchor link to应用很可能正在 Make It Native 应用中运行,该应用不能包含第三方原生代码,因此每个 Pushwoosh 操作都会静默失败。请改为构建自定义开发者应用或真实的原生版本。
如果应用已经是原生版本,请检查 Pushwoosh events 小组件是否位于首先加载的页面上,并且其 Application Code 属性已填写。如果没有有效的 Application Code,SDK 将不会启动。
为什么 Android 设备收不到通知了?
Anchor link to有两个通知服务注册了同一个 Firebase 事件并相互影响。
Pushwoosh 会替换 Mendix 应用的内置推送通知,而不是与其并行工作。在 Native Mobile Builder 中,请按如下方式设置功能:
- 推送通知:关闭。
- Firebase Android:开启,以便
google-services.json仍然能被识别。
只有一个服务可以注册 com.google.firebase.MESSAGING_EVENT。如果您的应用包含其他也注册了此服务的插件,请参阅将 Pushwoosh SDK 与其他 FCM 服务一起使用。
使用 Pushwoosh events 小组件时,我需要调用 Initialize 吗?
Anchor link to不需要。该小组件会根据其 Application Code 属性自行初始化 SDK。Initialize 操作是为那些通过 nanoflow 启动 SDK 而不是放置小组件的应用准备的,例如,在用户登录之前 Application Code 是未知的。
同时调用两者是无害的,但在您的 nanoflow 运行时,小组件已经完成了初始化工作。
如何从 Mendix 表达式向 SetTags 或 PostEvent 传递 JSON?
Anchor link to用单引号将 JSON 括起来,这样其中的双引号就无需转义:
'{"Language":"en","Level":7}'在 Mendix 表达式中,字符串由单引号界定,这使得 JSON 中的双引号可以按原样使用。双写双引号或用反斜杠转义它们会产生一个操作无法解析的字符串,并且该操作会因解析错误而拒绝它。
应用打开时如何停止系统警报?
Anchor link to默认情况下,当应用打开时收到的通知会由系统显示为警报,同时小组件的 On push received nanoflow 也会运行。调用 SetShowForegroundAlert 操作并传入 false 可以抑制该警报,并仅在 nanoflow 中处理通知,例如显示您自己的消息或刷新列表。
此操作仅在 iOS 上调用。Android SDK 未暴露此设置,并且 JavaScript 包装器会无条件调用原生方法,因此在 Android 上,该操作会引发错误,而不是什么都不做。
我可以用 Mac 版的 Studio Pro 构建原生应用吗?
Anchor link to不能使用 Native Mobile Builder,因为它只随 Windows 版的 Studio Pro 提供。其他所有功能在 Mac 版本上都可以正常工作,包括编写模块、放置小组件和导出应用。
在 macOS 上,请使用 @mendix/native-mobile-toolkit 命令行工具配置原生模板,该工具会从配置文件中设置功能、运行时 URL、应用标识符和原生依赖项。然后,在本地使用 Xcode 和 Gradle 构建生成的 iOS 和 Android 项目。
如何向一个特定设备发送测试通知?
Anchor link to调用 GetHwid 操作获取设备的 HWID,然后从 Pushwoosh 控制面板或服务器 API 向该 HWID 发送。将设备注册为测试设备是另一种方法,详见测试您的集成。