遇到问题
最近在集成了jpush-react-native
推送模块之后,能顺利接收到消息(后台)
但就是点击通知的时候,没反应
翻了一大堆的问题issue论坛帖子。。 还是无解
尝试解决
然后开始去翻阅代码,发现了点击推送的事件:
cn.jpush.reactnativejpush/JPushModule.java
544行最后:
github链接:https://github.com/jpush/jpush-react-native/blob/master/android/src/main/java/cn/jpush/reactnativejpush/JPushModule.java#L544
if (isApplicationRunningBackground(context)) {
intent = new Intent();
intent.setClassName(context.getPackageName(), context.getPackageName() + ".MainActivity");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.F
看到了吧,有个setClassName
方法,设定了我们程序的Activity
名称。
解决问题
继续翻阅自己的代码,终于发现了问题的根源:自己更改了applicationId
(在android/app/build.grade
配置下),但是又没有更改原始的代码结构,导致无法通过这个类名进行唤醒。。
所及解决办法就好办了,要么重新把applicationId
该回来,要么更改jpush-react-native
的源码,把刚刚那一行改为:
intent.setClassName(context.getPackageName(), "com.xxxx.MainActivity");
其中
com.xxx
为你AndroidManifest.xml
文件的package
属性