jpush-react-native icon indicating copy to clipboard operation
jpush-react-native copied to clipboard

react-native 0.64.0集成极光推送后没有反应,推送预估人数永远是0

Open qlingsu opened this issue 3 years ago • 19 comments

你的运行环境

  • 插件版本:
  • react-native 版本: 0.64.0

期望效果

期望集成可用 告诉我们你希望达到什么效果。

实际效果

按照官方文档集成后,app启动之后完全没有效果 告诉我们实际是什么效果。

重现步骤

image

image

image

image

5 image image

然后link 然后运行,没有任何反应,也没有报错。点击按钮返回的registerID 也为空。

Debug logs

包括 Android 或 iOS 的日志:

qlingsu avatar Mar 21 '21 23:03 qlingsu

我ios 不行,但是安卓可以

Zhou-Bill avatar Mar 22 '21 01:03 Zhou-Bill

我ios 不行,但是安卓可以

ios 只能用真机调试,在模拟器中貌似获取不到registerId

Zhou-Bill avatar Apr 02 '21 05:04 Zhou-Bill

我ios 不行,但是安卓可以

我iOS可以,Android不行

TrustDec avatar Apr 30 '21 05:04 TrustDec

你好 请问解决了吗 我也遇到了这个问题

EdivenH avatar Jun 08 '21 12:06 EdivenH

同样遇到上面的问题,官方能个解答吗

AllenJCheng avatar Jun 15 '21 03:06 AllenJCheng

可以获取registerID 但是无法获取通知 本地通知也不行 "jcore-react-native": "^1.9.2", "jpush-react-native": "^2.8.3", "react-native": "0.64.1",

helixcg avatar Jun 15 '21 04:06 helixcg

react-native-cli: 2.0.1 react-native: 0.64.2 可以获取registerid,极光web控制台可以看到集成成功,通知消息和自定义消息推送结果成功,目标数据有,但是成功始终是0

react-native-cli: 2.0.1 react-native: 0.63.4 也可以获取registerid,极光web控制台可以看到集成成功,通知消息和自定义消息推送结果成功,目标数据有,但是成功始终是0

AllenJCheng avatar Jun 16 '21 01:06 AllenJCheng

这个版本的包有问题,大家把依赖包的版本改成

    "jcore-react-native": "1.9.1",
    "jpush-react-native": "2.8.2",

就可以了

k55k32 avatar Jun 17 '21 10:06 k55k32

这么久了 都没人 解决吗

hengkx avatar Jun 19 '21 12:06 hengkx

可以获取registerID 但是无法获取通知 本地通知也不行 "jcore-react-native": "^1.9.2", "jpush-react-native": "^2.8.3", "react-native": "0.64.1",

+1 我也是一样的问题

chj-damon avatar Jun 23 '21 11:06 chj-damon

这个版本的包有问题,大家把依赖包的版本改成

    "jcore-react-native": "1.9.1",
    "jpush-react-native": "2.8.2",

就可以了

我试了一下,并没有解决这个问题。

chj-damon avatar Jun 23 '21 11:06 chj-damon

react-native-cli: 2.0.1 react-native: 0.64.2 可以获取registerid,极光web控制台可以看到集成成功,通知消息和自定义消息推送结果成功,目标数据有,但是成功始终是0

react-native-cli: 2.0.1 react-native: 0.63.4 也可以获取registerid,极光web控制台可以看到集成成功,通知消息和自定义消息推送结果成功,目标数据有,但是成功始终是0

我现在是0.64.1,你的意思是升级到0.64.2之后安卓和IOS就可以收到推送消息了吗?

chj-damon avatar Jun 23 '21 11:06 chj-damon

useEffect(() => {
    JPush.init();
    JPush.setLoggerEnable(true);

    //连接状态
    const connectListener = (result: { connectEnable: boolean }) => {
      console.log('connectListener:' + JSON.stringify(result));
    };
    JPush.addConnectEventListener(connectListener);

    //通知回调
    const notificationListener = async (result: {
      messageID: string;
      title: string;
      content: string;
      badge: string;
      ring: string;
      extras: Extra;
      notificationEventType: 'notificationArrived' | 'notificationOpened';
    }) => {
      console.log('44');
      JPush.setBadge({ badge: -1, appBadge: 0 });
      if (result.extras && result.extras.annoType) {
        switch (result.extras.annoType) {
          default:
            break;
        }
      }
    };
    JPush.addNotificationListener(notificationListener);

    //本地通知回调
    const localNotificationListener = (result: {
      messageID: string;
      title: string;
      content: string;
      extras: Extra;
      notificationEventType: 'notificationArrived' | 'notificationOpened';
    }) => {
      console.log('localNotificationListener:' + JSON.stringify(result));
    };
    JPush.addLocalNotificationListener(localNotificationListener);

    //自定义消息回调
    const customMessageListener = (result: { messageID: string; content: string; extras: Extra }) => {
      console.log('customMessageListener:' + JSON.stringify(result));
    };
    JPush.addCustomMessagegListener(customMessageListener);

    //tag alias事件回调
    const tagAliasListener = (result: TagAliasCallbackResult) => {
      console.log((result as TagCallbackResult).tags);
    };
    JPush.addTagAliasListener(tagAliasListener);

    //手机号码事件回调
    const mobileNumberListener = (
      result: {
        code: number;
      } & Sequence,
    ) => {
      console.log('mobileNumberListener:' + JSON.stringify(result));
    };
    JPush.addMobileNumberListener(mobileNumberListener);
  }, []);

通过debug发现,所有的listener里面的console.log都没有执行,不确实是不是就是因为这个导致的

chj-damon avatar Jun 23 '21 12:06 chj-damon

但是用

JPush.getRegistrationID(result => console.log('registerID:' + JSON.stringify(result)))

又是可以拿到registerID的。 我看这篇文章里面说,如果registerID能拿到,就表示集成是成功的。

chj-damon avatar Jun 23 '21 12:06 chj-damon

老哥解决了吗 @chj-damon

452MJ avatar Jul 19 '21 01:07 452MJ

解决了。 在AndroidManifest.xml里面要多加一段配置:

<activity
      android:name="cn.jpush.android.service.JNotifyActivity"
      android:exported="true"
      tools:node="replace"
      android:taskAffinity="jpush.custom"
      android:theme="@android:style/Theme.Translucent.NoTitleBar">
        <intent-filter>
          <action android:name="cn.jpush.android.intent.JNotifyActivity" />
          <category android:name="android.intent.category.DEFAULT" />
          <category android:name="${applicationId}" />
        </intent-filter>
    </activity>

chj-damon avatar Jul 19 '21 06:07 chj-damon

<activity
      android:name="cn.jpush.android.service.JNotifyActivity"
      android:exported="true"
      tools:node="replace"
      android:taskAffinity="jpush.custom"
      android:theme="@android:style/Theme.Translucent.NoTitleBar">
        <intent-filter>
          <action android:name="cn.jpush.android.intent.JNotifyActivity" />
          <category android:name="android.intent.category.DEFAULT" />
          <category android:name="${applicationId}" />
        </intent-filter>
    </activity>

帮大忙了,但是app杀死之后就收不到了,这个你怎么解决的

Jianlong-Nie avatar Jul 20 '21 07:07 Jianlong-Nie

这个好像就是不行。看看能不能集成厂商,或者开VIP

chj-damon avatar Jul 20 '21 07:07 chj-damon

这么久了 都没人 解决吗

whoopsHzh avatar Aug 25 '21 08:08 whoopsHzh