jpush-react-native addGetRegistrationIdListener 不执行

nodejs
jpush
react-native
标签: #<Tag:0x00007fb83c4c8a50> #<Tag:0x00007fb83c4c8910> #<Tag:0x00007fb83c4c87d0>

(Honest) #4

我又看了 xcode 的日志找到了一些线索:

Not get deviceToken yet. Maybe:
your certificate not configured APNs?
or current network is not so good so APNs registration failed? 
or there is no APNs register code? Please refer to JPush docs.

#5

(Honest) #6

又在 didRegisterForRemoteNotificationsWithDeviceToken 中做了一次打印,走到了 register success

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
  printf("register success");
  [JPUSHService registerDeviceToken:deviceToken];
}

(Honest) #7

又修改了打印信息

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
  printf("register success %s", deviceToken);
  [JPUSHService registerDeviceToken:deviceToken];
}

运行结果如下:

2018-04-24 15:05:38.345651+0800 CadailyApp[15633:6320264]  | JIGUANG | W - [JIGUANGClientController] Not get deviceToken yet. Maybe: your certificate not configured APNs? or current network is not so good so APNs registration failed?  or there is no APNs register code? Please refer to JPush docs.
register success \231\200\263\241!----- register info -----
----- register info -----

(Honest) #8

大佬,这样的话,是不是就说明的了我在 ios 部分的设置是没有问题的?


#9

你regIstrationID能不能取到嘛


(Honest) #10

拿不到,我不会 ios 开发,只能是通过 js 查看

// 这段里面的回调没有执行
JPushModule.addGetRegistrationIdListener((registrationId) => {
      console.log(`Device register succeed, registrationId ${registrationId}`);
}}

#11

添加监听

看一下完整的客户端日志信息,报了什么错,就根据错误排查
上面的 Not get deviceToken yet
根据这个排查


(Honest) #12

这边的监听完全不执行:( 唉…


#13

可否根据上述链接先排查一下


(Honest) #14

实在不好意思,有两个关键字不明白是什么意思

  • pushconfig
  • 应用详情

#15

有的插件可能没有这些文件,你先将你能检查的部分检查,特别是


(Honest) #16

非常感谢您的耐心解答,bundle id 是一致的,证书都是绿的。



(Honest) #17

明天测试机到了,再拿测试机试试看…


#18

你现在用的是iOS模拟器测试的吗?


(Honest) #19

现在用的是同事的机器 iphone7 - ios11


#20

噢噢,用的是真机就行,你现在将日志给一下。

你所使用的插件的版本号。


(Honest) #21

我在查看日志的时候又找到了新的线索

2018-04-24 16:43:23.385631+0800 CadailyApp[15704:6361664]  | JIGUANG | I - [JIGUANGService] 
2018-04-24 16:43:23.387162+0800 CadailyApp[15704:6361662]  | JIGUANG | I - [JIGUANGClientController] Action - jpush setup
2018-04-24 16:43:23.387627+0800 CadailyApp[15704:6361664]  | JIGUANG | I - [JIGUANGClientController] Action - setup
2018-04-24 16:43:25.474594+0800 CadailyApp[15704:6361652]  | JIGUANG | W - [JIGUANGClientController] Not get deviceToken yet. Maybe: your certificate not configured APNs? or current network is not so good so APNs registration failed?  or there is no APNs register code? Please refer to JPush docs.
2018-04-24 16:43:27.477157+0800 CadailyApp[15704:6361663]  | JIGUANG | W - [JIGUANGClientController] Not get deviceToken yet. Maybe: your certificate not configured APNs? or current network is not so good so APNs registration failed?  or there is no APNs register code? Please refer to JPush docs.
2018-04-24 16:43:28.375187+0800 CadailyApp[15704:6361652]  | JIGUANG | I - [JIGUANGSessionController] connecting with coreAddr 117.121.49.92,port 7006
2018-04-24 16:43:28.470448+0800 CadailyApp[15704:6361712]  | JIGUANG | I - [JIGUANGRegistration] 
2018-04-24 16:43:28.664746+0800 CadailyApp[15704:6361652]  | JIGUANG | E - [JIGUANGSessionController] error code:1005,你配置的AppKey不存在

其中有一个 1005,你配置的 AppKey不存在,目前我使用的是 jpush-react-nativeAppDelegate.m 部份的代码是由我用 sudo react-native link 自动生成的,因为我后来修改过 appkey,原来真正的问题是用 sudo react native link 命令输入的新的 appkey 并没有修改 AppDelegate.m:sweat: 真是大意了,安卓上也有同样的问题,之前安卓的配置我就自行修改过,ios 上却没有想到。
总之还是多亏了您的帮助,因为不懂原生开发,所以在 debug 的时候非常的痛苦。


#22

嗯嗯,那现在就是修正了 AppKey 后,问题解决了是吗?


(Honest) #23

恩恩,成功,泪奔:sob:,折腾了两天,今天是第二天。

问题在于使用 react native link 的时候,生成的代码存在问题。

  • 比如安卓的 AndroidManifest.xmlJPUSH_APPKEY 通过配置文件的形式无法获取,只能通过手动修改的方法。
  • 还有就是我说的 ios 部份通过 link 不能再次修改 appkey