android推送正常,ios推送失败

ios
react-native
标签: #<Tag:0x00007fb83f39be40> #<Tag:0x00007fb83f39bd00>

(梦回秦殇) #1

XCode 中打印出信息:
2017-08-23 19:26:23.103 ICanIOS[14798:284144]
--------------------------- JPush Log ----------------------------
--------------------JPush SDK Version:3.0.5–build:36----------
--------------------JCore Lib Version:1.1.3–build:21----------
-----------------AppKey:0c7cfd1e2fddf7122754d35c----------------
2017-08-23 19:26:23.562 | JIGUANG | I - [JIGUANGLogin]
----- login result -----
uid:10695347150
registrationID:171976fa8ab5a01a7d5
在极光客户端上看到消息推送是成功的(目标|成功 1|1),但是在苹果手机上没有收到推送的消息。getRegistrationID 方法是执行的。有那些可能是我在苹果手机收不到推送消息的原因吗?
谢谢您的回答


#2

极光这边已经将消息发给了Apple服务器,你如果确认没收到,是Apple服务器没有下发,几个原因:
1、网络异常,无法连接到Apple服务器,Apple服务器对断连期间 的推送,只会保留1条,其他会丢弃。 可尝试切换网络
2、手机-通知栏提醒-提醒样式
3、调用了反注册代码 [[UIApplication sharedApplication] unregisterForRemoteNotifications];或者
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]]是可以进入应用设置页面使用户可以手动变更是否允许通知的设置。不手动操作不会直接关掉推送
4、注册apns代码中有提供类型选择:
entity.types = JPAuthorizationOptionAlert|JPAuthorizationOptionBadge|JPAuthorizationOptionSound; 你没有写上alert
5、iOS10以下,处于前台,收到消息是不会展示的,log会打印,iOS10以上才有提供接口,在前台展示通知
6、push Notification没开
7、App端配置的通配证书
8、高峰期Apple下发有延迟

具体排查总结阅读:
1、 常见问题 - JPush 合集(持续更新)
2、 常见问题 - JPush 合集(持续更新)


(梦回秦殇) #3

我的问题解决了。
有方法可以实现 IOS10 以前的版本,在APP运行状态通知栏也显示推送消息吗?
IOS端,我在通知栏看到消息了,但是 JPushModule.addReceiveNotificationListener 没有执行,这是什么原因呢?
“jcore-react-native”: “^1.1.0”,
“jpush-react-native”: “^1.6.0”
Message ID 54043196166373776
推送平台 android,winphone,ios-dev
推送结果 已发送
audience {“registration_id”:[“191e35f7e0704b3b974”]}
notification {“android”:{“extras”:{“from”:""},“alert”:“engine”},“ios”:{“sound”:“happy.caf”,“extras”:{“from”:""},“badge”:"+1",“alert”:“engine”}}
message {“msg_content”:“engine”,“extras”:{“from”:“forum”}}
options {“sendno”:895697681,“time_to_live”:86400,“apns_production”:false}
APPkey: 0c7cfd1e2fddf7122754d35c


#4

这个iOS系统的设定 , 在iOS10系统才开了这个新功能,以前的是没有的,你可以取到信息后自行做应用内的展示

iOS在后台状态下,收到通知,要点击消息才会走方法


(梦回秦殇) #5

感谢您的解答。
我们使用的是react-native。IOS端,我在通知栏看到消息了,但是 JPushModule.addReceiveNotificationListener 没有执行,这是什么原因呢?


(HuminiOS) #6

如果应用在后台 iOS 9 需要点击该条推送才会有这个回调。

如果应用在前台,直接可以收到。


(梦回秦殇) #8

jpush-react-native(1.6.0),jcore-react-native(1.1.0)
在jpush-react-native 文件的 index.js 第155行中看到:

/**
* Android
 */
	static addReceiveNotificationListener(cb) {
		listeners[cb] = DeviceEventEmitter.addListener(receiveNotificationEvent,
			(map) => {
				cb(map);
			});
	}

https://github.com/jpush/jpush-react-native/blob/master/example/documents/Common.md

这个文档中看到
方法 addReceiveNotificationListener 可以在IOS中使用吗?
应用确实是在前台运行,但是这个方法内的log没有输出,这是什么问题?


(HuminiOS) #9

iOS 、android 在 jpush 2.0.4 上统一了 addReceiveNotificationListener 这个方法


(梦回秦殇) #10

应用在前台运行,我们在通知栏看到了推送的消息,我们应该监听什么事件或者说用什么方法得知我们已经收到消息了??


(HuminiOS) #11

升级插件 到 2.0.4 ,再调用 addReceiveNotificationListener 这个方法。


(梦回秦殇) #12

升级之后已经解决


(梦回秦殇) #13

upload Apple store 时遇到 symbols tool failed 这个错误,请问这是哪的问题,望您能指点一下


(梦回秦殇) #14

@HuminiOS


(梦回秦殇) #15

问题已经解决。原因是在工程的Libraries文件夹中有重复文件,这个问题最终提交Apple store时还会报错:IMS-90171的错误。