给 iOS 应用添加推送功能是一件比较麻烦的事情,本篇文章收集了集成 jpush-react-native 的常见问题,目的是为了帮助用户更好地排查问题
1.收不到推送
确保是在真机上测试,而不是在模拟器
自己的应用已经在 Apple developer 给应用配置推送功能,创建推送证书 (并且保证 bundle id 与 Apple developer 上的是一致的)如果之前没有接触过推送证书建议看视频来 官方集成视频
能够获取deviceToken 但是收不到推送, 如果是使用 xcode 8,检查 (Project -> Target ->Capabilities ) Push Notification 选项是否已经点开,如果没有需要点开
2.收到一条通知 JS 层会有多个 ReceiveNotification 事件
3. 如何消除 应用 icon 的角标( badge )
调用 JPushModule.setBadge 方法 如果设为 0,则表示情况角标
JPushModule.setBadge(5,(badgeNumber) => {
console.log(badgeNumber)
});
4.开发环境能够收到推送,生产环境收不到推送
5.自定义消息事件无法触发
6.点击推送唤起应用的时候 OpenNotification 不调用
7.通知在前台展示问题
-
iOS 10 开始允许通知在前台展示这个地方在 Native 代码中控制 // iOS 10 Support
-(void)jpushNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(NSInteger))completionHandler {
// Required
NSDictionary * userInfo = notification.request.content.userInfo;
if([notification.request.trigger isKindOfClass:[UNPushNotificationTrigger class]]) {
[JPUSHService handleRemoteNotification:userInfo];
[[NSNotificationCenter defaultCenter] postNotificationName:kJPFDidReceiveRemoteNotification object:userInfo];
}
completionHandler(UNNotificationPresentationOptionAlert); // 需要执行这个方法,选择是否提醒用户,有 Badge、Sound、Alert 三种类型可以选择设置
}
iOS 10 之前是系统控制,应用在前台推送不展示
8.找不到头文件 RCTJPushModule.h
RN 在 0.40.0 之后 不会自动加入这个路径了,要手动加一下
9.在 iphone 5 的模拟器编译不通过
JPush SDK 在 3.0.0 及以后版本不再支持 i386 的模拟器了血药在 iphone 5s 以上版本中测试
10.找不到 jcore-react-native
作者:HuminiOS - 极光( JPush 为极光团队账号,欢迎关注)
原文:集成 jpush-react-native 常见问题汇总 ( iOS 篇)
知乎专栏:极光日报 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|