遇到問題
最近在集成了jpush-react-native
推送模塊之后,能順利接收到消息(后臺)
但就是點擊通知的時候,沒反應
翻了一大堆的問題issue論壇帖子屑咳。琐驴。 還是無解
嘗試解決
然后開始去翻閱代碼,發(fā)現(xiàn)了點擊推送的事件:
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
名稱。
解決問題
繼續(xù)翻閱自己的代碼霞赫,終于發(fā)現(xiàn)了問題的根源:自己更改了applicationId
(在android/app/build.grade
配置下),但是又沒有更改原始的代碼結構肥矢,導致無法通過這個類名進行喚醒端衰。。
所及解決辦法就好辦了甘改,要么重新把applicationId
該回來旅东,要么更改jpush-react-native
的源碼,把剛剛那一行改為:
intent.setClassName(context.getPackageName(), "com.xxxx.MainActivity");
其中
com.xxx
為你AndroidManifest.xml
文件的package
屬性