全部产品
云市场

常见问题

更新时间:2020-03-20 16:22:19

关于权限的说明

Android 6.0 后,需要用户手动授予手机权限,如读写 SD 卡。为了更加精准的发送推送,建议开发者引导获取消息推送所需权限。

- 接入华为、小米等第三方渠道后,无法发送推送。

这是由于没有打开 mPaaS 推送控制台的渠道的设置开关。请参见 代码示例 以获取代码示例以及使用方法和注意事项。

关于日志无法打印的问题。

使用魅族手机测试时,如 log.dlog.i 日志无法打印,您可通过在 设置 > 辅助功能 > 开发者选项 中打开 高级日志输出。如遇开发问题,可设置 tag=mpush,对日志进行过滤。

关于 push ad-token (deviceId) 的生成。

服务端依赖 IMSI 和 IMEI 生成 deviceId。因此,建议开发引导用户获取所需的 READ_PHONE_STATE 权限。

在 10.1.60.5 ~ 10.1.60.7 版本基线中存在的端口解析问题解决方法。

如果是专有云环境,对于非 443 端口的推送服务器配置会出现解析失败导致连接错误。
解决方法

  • 如果使用 config 文件打包,请在 config 文件中按如下方式修改:
    1. //config 文件中其他部分省略,在自定义端口号前加上\\{空格}
    2. {
    3. "pushPort":"\\ 8000",
    4. }
  • 如果不使用 config 文件打包,请在 AndroidManifest.xml 中将 rome.push.port 的值按如下方式修改:
    1. //在端口号前加上\{空格}
    2. <meta-data
    3. android:name="rome.push.port"
    4. android:value="\ 8000" />

当APP处于前台时, 消息推送是否会有横幅或声音提示 ?

苹果的默认机制:当APP在前台时,消息可以达到,但是不会展示。如果需要在前台实现展示,需要自己做处理。

iOS 手机无法收到消息,但消息状态是 ACKED。

对于ios 的推送,如果消息状态是ACKED,表示已经成功推送给苹果的推送服务。请先确认是否开启推送权限,是否有将应用切到后台。苹果的默认机制是:当APP在前台时,消息可以达到,但是不会展示。如果需要在前台实现展示,需要自己做处理。

消息状态是 NoBindInfo。

NoBindInfo 表示用户通过 userid 去推送,但根据 userid 没有找到对应的信息。请先确认客户端是否有调用绑定接口,并且对应的 appid 和workspaceid 是否一致。

消息状态是 BadDeviceToken。

此状态只会出现在 iOS 的推送,表示实际推送的 token 非法。先检查证书的环境是否正确。app 打包使用开发证书,那么 push 控制台配置需使用开发环境证书;Xcode 连真机调试,需要使用开发者证书。app 打包使用生产证书,那么 push 控制台配置需要使用生产环境证书。

消息状态是 DeviceTokenNotForTopic。

此状态只会出现在 iOS 的推送,表示此 token 与推送的证书的 bundleid 不匹配。先检查证书是否正确,并且与客户端打包的bundleid 是否一致。