RN对接EMAS推送遇到的问题

317 阅读1分钟

使用第三方库库react-native-push-emas

iOS遇到问题:
主要是支付宝登录和EMAS库中的UTDID库冲突

解决方案 : 下载无UTDID的支付宝SDK,把UTDID库通过pod依赖,这样所有第三方库都可以使用同一份UTDID库了

podspec配置

安卓推送遇问题:
相对iOS推送就复杂一些,因为它涉及到一个离线推送需要单独配置手机厂商的推送服务

  1. 无法找到tdid库
    第三方库exclude这库,所以找不到,需要自己添加依赖implementation 'com.aliyun.ams:alicloud-android-utdid:2.6.0'

  2. 华为推送注册失败,报错907135701: OpenGW没有配置
    华为推送应用的appid填错

<meta-data android:name="com.huawei.hms.client.appid" android:value="appid=xxx" />
  1. 华为推送注册失败,报错6004: 权限不存在,未在华为开发者联盟上申请。
    清理HMS Core缓存后重试和重置推送服务

  2. 离线情况,华为推送注册成功,使用token在华为推送后台可以推送成功,但是使用EMAS后台推送无法成功
    第三方推送需要走辅助通道,辅助通道必传参数是否填写:AndroidPopupActivity、AndroidPopupTitle、AndroidPopupBody

  3. 辅助弹窗出现后,点击后没有收到通知的回调 原因用第三方的AndroidPopupActivity,但是后台发送是用的是自己app的包名,需要换成第三方库的包名xxx.xxxActivity

  4. Using insecure protocols with repositories, without explicit opt-in, is unsupported. Switch Maven repository 'maven(XXX)' to redirect to a secure protocol (like HTTPS) or allow insecure protocols.

配置allowInsecureProtocol

maven {
   allowInsecureProtocol = true
   url 'xxx'
}
  1. Could not find auto-value-annotations.jar
    参考链接

  2. 华为推送注册失败,报错6003: getToken failed. 6003 com.huawei.hms.common.ApiException: 6003: certificate fingerprint error
    清理HMS Core缓存后重试和重置推送服务