欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

react-native 集成极光推送jpush-react-native时的小问题

发布时间:2025/7/14 编程问答 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 react-native 集成极光推送jpush-react-native时的小问题 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

android的一个报错

... set canOverrideExistingModule=true

解决:

问题是在/android/app/src/java/.../MainApplication.java的getPackages()中重复引用了某个package,删除掉重复内容即可

新版中添加notifyJSDidLoad方法报错

  • 如果不设平台,在ios里会报notifyJSDidLoad undefined错误

  • 如果使用官方例子notifyJSDidLoad的代码,android会报cb方法undefined

  • // 在收到点击事件之前调用此接口 if(Platform.OS === 'android'){ //notifyJSDidLoad仅安卓有此方法// JPushModule.notifyJSDidLoad((resultCode) => {// if (resultCode === 0) {}// })//官网给的上面这种会报cb方法undefined错误JPushModule.notifyJSDidLoad(resultCode=>console.log(resultCode))//这样用不会报错,当然还有其他不会报错的写法。 }

    后台带参传送时,前台拿到数据的结构不同平台不一样

    JPushModule.addReceiveOpenNotificationListener(message=>{//用户点击通知事件//android和ios接收到的参数结构不同,需要分别处理获取if(Platform.OS==='android'){const {param1,param2} = JSON.parse(message.extras)... //对应的路由跳转或者其他操作}else{ //iOSconst {param1,param2} = message... //对应的路由跳转或者其他操作} }

    android:const {param1,param2} = JSON.parse(message.extras)

    iOS: const {param1,param2} = message

    param1,param2改成你要接收的参数字段名

    原理

    因为iOS平台的推送是Apns推送,json格式不同,具体格式可以百度apns推送 json格式,如果懒可以点这里进行选购。

    转载于:https://www.cnblogs.com/macq/p/7605975.html

    总结

    以上是生活随笔为你收集整理的react-native 集成极光推送jpush-react-native时的小问题的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。