Android端推送的消息可以立马收到,代码中却无法回调

android
jpush
标签: #<Tag:0x00007fb83344c008> #<Tag:0x00007fb833453ee8>

(Zhangdaren11) #1

如题,通知栏显示推送,代码中的回调函数却没有反应:比如:

componentDidMount() {

        //接收推送事件
        JPushModule.addReceiveNotificationListener((message) => {
         
            this._showInfo("接收推送事件:"+message.alertContent);//显示弹窗
            console.log("接收推送事件");
        })

        // 打开通知
        JPushModule.addReceiveOpenNotificationListener((map) => {
            this._showInfo("打开通知:"+map.alertContent );
            console.log("打开通知");
          
        });

    }

    componentWillUnmount() {
        JPushModule.removeReceiveCustomMsgListener();
        JPushModule.removeReceiveNotificationListener();
    }

推送的消息可以立马收到,但接收到无反应,点击通知栏的消息,消息消失,无反应,log也不打印


#2

1、使用的原生还是插件,什么版本

2、参考demo

3、关于点击无反应,优先阅读


(Zhangdaren11) #3

感谢回复,我使用的是React native的插件,现在在写纯React native的app,都是最新的jpush版本.
配置都ok,就是能收到推送的消息,但是除此之外都不行.像标题中描述的问题一样.


#4

1、阅读
https://github.com/jpush/jpush-react-native#关于点击通知跳转到指定界面

2、

[quote=“KenChoi, post:31, topic:15925, full:true”]你先打开 MainActivity,然后再 index.android.js 中接收事件,然后跳转到指定界面:

// map 中增加跳转页面的键值对,比如
map.putString("jumpTo", "second_page");
if (!isApplicationRunning(context) || mModule.mContext == null) {
                        Intent intent = new Intent();
                        intent.setClassName(context.getPackageName(), context.getPackageName() + ".MainActivity");
                        intent.putExtras(bundle);
                        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
                        context.startActivity(intent);
                        new ReactApplicationContext(context).getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
                                .emit("openNotification", map);

index.android.js

componentDidMount() {
    JPushModule.addReceiveOpenNotificationListener((map) => {
        console.log("Opening notification!");
        console.log("map.extra: " + map.key);
        var page = map.jumpTo;
        if (page != undefined) {
          // jump to second page
        }
    });
}

[/quote]


(Zhangdaren11) #5

谢谢回复:
问题解决了:Android
在回调方法之前调用这个就好了

JPushModule.notifyJSDidLoad((resultCode) => {
            if (resultCode === 0) {
            }
        });