集成 jpush
给 iOS 应用添加推送功能是一件比较麻烦的事情,本篇文章收集了集成 jpush-react-native 的常见问题,目的是为了帮助用户更好地排查问题
1. 收不到推送
- 确保是在真机上测试,而不是在模拟器
- 自己的应用已经在 Apple developer 给应用配置推送功能,创建推送证书 (并且保证 bundle id 与 Apple developer 上的是一致的)如果之前没有接触过推送证书建议看视频来 官方集成视频
- 能够获取 deviceToken 但是收不到推送, 如果是使用 xcode 8,检查 (Project -> Target -> Capabilities ) Push Notification 选项是否已经点开,如果没有需要点开
2. 收到一条通知 JS 层会有多个 ReceiveNotification 事件
- 升级 jpush-react-native 到最新版本
- 有没有在合适的地方 remove ReceiveNotification 事件,如果多次监听该事件会导致重复接收
3. 如何消除 应用 icon 的角标(badge)
调用 JPushModule.setBadge 方法 如果设为 0,则表示情况角标
JPushModule.setBadge(5, (badgeNumber) => {
console.log(badgeNumber)
});
4. 开发环境能够收到推送,生产环境收不到推送
- 如果是通过控制台发送的推送,检查环境选择是否正确
- 如果是调用 REST api 发送通知,请检查推送参数
- 手机应用是否是仍然是 开发环境, 如果不是请打包 Ad Hoc 来测试
5. 自定义消息事件无法触发
- 如果通过控制台发送的自定义消息,确保选择的是自定义消息,而不是通知
- 检查是否监听了 networkDidReceiveMessage 事件
6. 点击推送唤起应用的时候 OpenNotification 不调用
- 升级 jpush-react-native 到最新版本(旧版本还没做缓存处理,新版本已修复)
- 检查监听 OpenNotification 的操作是否异步调用,有用户应为在异步回调中才执行监听操作,导致事件已经上抛到 js 层但 js 层还没执行监听操作的问题
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
在 iOS 工程中如果找不到头文件可能要在 TARGETS-> BUILD SETTINGS -> Search Paths -> Header Search Paths 添加如下如路径
$(SRCROOT)/../node_modules/jpush-react-native/ios/RCTJPushModule/RCTJPushModuleRN 在 0.40.0 之后 不会自动加入这个路径了,要手动加一下
9. 在 iphone 5 的模拟器编译不通过
JPush SDK 在 3.0.0 及以后版本不再支持 i386 的模拟器了血药在 iphone 5s 以上版本中测试
10. 找不到 jcore-react-native
- 在 jpush-react-native 1.4.4 以后版本 需要通知安装 jcore-react-native 才能正常使用
作者:HuminiOS - 极光
原文:集成 jpush-react-native 常见问题汇总 (iOS 篇)
知乎专栏:极光日报
集成 jpush的更多相关文章
- (九十七)集成JPush实现远程通知和推送的发送
上节介绍了通过直接和APNS交互实现推送的方法,较为繁琐,最为重要的是发送推送需要特定的服务端,通过JPush,不仅可以简化客户端的接收,还可以通过控制台或者API实现通知的发送. 首先注册JPush ...
- Laravel 集成 JPush 极光推送指北
我是一个 Laravel 小白,我是一个 Laravel 小白,我是一个 Laravel 小白(默念三遍再往下读,如果非小白就不用看了). Laravel 使用 Composer 来管理代码依赖.所以 ...
- java集成jpush实现客户端推送
代码地址如下:http://www.demodashi.com/demo/13700.html 前言 java 集成jpush 实现客户端推送 一.准备工作 开发环境: jdk1.6 Eclipse ...
- 第十五章:集成JPUSH
如果不想自己搭建push server,则可以借助于第三方的api来实现push的功能,本文主要介绍ionic如何集成jpush. 具体步骤如下: 创建ionic应用:ionic_jpush. 申请j ...
- Android集成JPush极光推送
推送原理 参考网址:https://blog.csdn.net/huangli1466384630/article/details/79889473 SDK下载 https://docs.jiguan ...
- IOS集成JPush
本篇文章采用Xcode手动集成JPush 证书 参考网址:https://docs.jiguang.cn//jpush/client/iOS/ios_cer_guide/ 下载SDK 下载网址:htt ...
- JAVA集成JPush
本篇集成为web项目手动集成JPush 一.获取AppKey.Master Secret https://docs.jiguang.cn 成为极光用户创建一个应用拿到(AppKey.Master Se ...
- Android集成JPush(极光推送)
目前只是简单的集成 1.在极光推送官网注册用户 2.创建应用 3.配置包名,获得APPKEY 去设置 输入应用包名 确定然后返回查看APPKEY 3.在应用中集成极光推送 用的jcenter自动集成的 ...
- AndroidStudio离线打包MUI集成JPush极光推送并在java后端管理推送
1.AndroidStudio离线打包MUI 如何离线打包请参看上篇随笔<AndroidStudio离线打包MUI> 2.集成极光推送 官方文档:https://docs.jiguang. ...
随机推荐
- maven 编译,测试,打包和安装工程
编译工程,使用命令mvn compile 测试工程,使用命令mvn test 测试和编译工程,使用命令mvn test-compile 打包工程,使用命令mvn package,将工程打包成jar\w ...
- IDEA安装maven
1.先到maven的官网下载安装包:http://maven.apache.org/download.cgi 解压安装包 2.配置环境变量 新建变量名MAVEN_HOME 变量值 D:\Soft ...
- VMware Conveter Standalone agent 安装时出现Error 29190错误的解决办法
官网上面找的: if it helps anyone else, i found a workaround for my particular issue. on the source machine ...
- Hadoop集群搭建-04安装配置HDFS
Hadoop集群搭建-05安装配置YARN Hadoop集群搭建-04安装配置HDFS Hadoop集群搭建-03编译安装hadoop Hadoop集群搭建-02安装配置Zookeeper Hado ...
- (五)Java秒杀项目之页面优化
一.页面缓存+URL缓存+对象缓存 1.通过加缓存来减少对数据库的访问 2.步骤: 取缓存 手动渲染模版 结果输出 3.页面缓存和URL缓存的过期时间比较短,比较适合变化不大的场景,比如商品列表页.而 ...
- Linux系列(7):入门之磁盘与文件系统管理
1.磁盘的主要概念 下面展示一下磁盘结构图: 1.磁道 2.柱面 3.物理扇区 已经了解了这么多概念,现在总结一下 4.磁盘分区 1.概念 磁盘分区就是将磁盘划分成不同的区域. 2.分区的最小单位 早 ...
- 【xlwings】 wps 和 office 的excel creat_sheet区别
最近在学习 xlwings,参考学习的网址:https://www.jianshu.com/p/b534e0d465f7 写得很棒,学到了很多. 在新建sheet表单, 发现一个问题. import ...
- Codeforces 1189D2. Add on a Tree: Revolution
传送门 首先可以证明一颗树合法的充分必要条件是不存在某个节点的度数为 $2$ 首先它是必要的,考虑任意一条边连接的两点如果存在某一点 $x$ 度数为 $2$ ,那么说明 $x$ 还有连一条边出去,那么 ...
- HUD 4507 吉哥系列故事——恨7不成妻
传送门 三个限制都可以数位 $dp$ , $dfs$ 是维护当前位,之前各位总和模 $7$ 意义下的值,之前填的数模 $7$ 意义下的值,是否贴着限制 主要现在求的是各个合法数的平方的和,比较恶心 开 ...
- 交替方向乘子法(ADMM)的原理和流程的白话总结
交替方向乘子法(ADMM)的原理和流程的白话总结 2018年08月27日 14:26:42 qauchangqingwei 阅读数 19925更多 分类专栏: 图像处理 作者:大大大的v链接:ht ...