使用第三方库库react-native-push-emas
iOS遇到问题:
主要是支付宝登录和EMAS库中的UTDID库冲突
解决方案 : 下载无UTDID的支付宝SDK,把UTDID库通过pod依赖,这样所有第三方库都可以使用同一份UTDID库了
安卓推送遇问题:
相对iOS推送就复杂一些,因为它涉及到一个离线推送需要单独配置手机厂商的推送服务
-
无法找到tdid库
第三方库exclude这库,所以找不到,需要自己添加依赖implementation 'com.aliyun.ams:alicloud-android-utdid:2.6.0' -
华为推送注册失败,报错
907135701: OpenGW没有配置
华为推送应用的appid填错
<meta-data android:name="com.huawei.hms.client.appid" android:value="appid=xxx" />
-
华为推送注册失败,报错
6004: 权限不存在,未在华为开发者联盟上申请。
清理HMS Core缓存后重试和重置推送服务 -
离线情况,华为推送注册成功,使用token在华为推送后台可以推送成功,但是使用
EMAS后台推送无法成功
第三方推送需要走辅助通道,辅助通道必传参数是否填写:AndroidPopupActivity、AndroidPopupTitle、AndroidPopupBody -
辅助弹窗出现后,点击后没有收到通知的回调 原因用第三方的AndroidPopupActivity,但是后台发送是用的是自己app的包名,需要换成
第三方库的包名xxx.xxxActivity -
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'
}
-
Could not find auto-value-annotations.jar
参考链接 -
华为推送注册失败,报错
6003: getToken failed. 6003 com.huawei.hms.common.ApiException: 6003: certificate fingerprint error
清理HMS Core缓存后重试和重置推送服务