文档章节

集成 jpush-react-native 常见问题汇总 (iOS 篇)

极光推送
 极光推送
发布于 2017/04/27 15:17
字数 795
阅读 70
收藏 0

给 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/RCTJPushModule

RN 在 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 篇)

知乎专栏:极光日报

© 著作权归作者所有

共有 人打赏支持
极光推送
粉丝 42
博文 151
码字总数 156449
作品 1
深圳
个人站长
React Native 轻松集成统计功能(iOS 篇)

最近产品让我加上数据统计功能,刚好极光官方支持数据统计 支持了 React Native 版本 第一步 安装: 在你的项目路径下执行命令: 第二步 配置: ReactNative iOS 端配置步骤在插件中自动完成,...

极光推送
2017/10/19
0
0
jpush-react-native android端集成——个人记录

为什么选用极光?因为这个 jpush-react-native 是极光官网维护的 ,而且关于原生方面配置也不是很多,方便搞前端从事RN的同学使用。 官网注册 账号https://www.jiguang.cn/,获取 AppKey 执行...

JsLin_
07/06
0
0
react native 友盟统计 IOS 端集成

react native 友盟统计的Android端集成可参考 :https://www.jianshu.com/p/1c41d4b66312 希望大家少走些弯路吧。 下面介绍下IOS 端的集成: 步骤 ios端的sdk集成 ios 和rn 的交互类 工程的相...

JsLin_
08/30
0
0
React-Native一款社交软件

转载https://bbs.reactnative.cn/user/evai 一款基于出题,做题的社交软件。主要功能有题目,聊天和动态。 目前已在iOS和Android平台上线。 项目地址:查看 应用宝地址:查看 功能简介: 自己...

大灰狼的小绵羊哥哥
09/06
0
0
继 Airbnb 之后,Udacity 也宣布弃用 React Native!

Udacity 移动端团队最近删除了 App 中使用 React Native 语言开发的相关功能。 我们收到大量有关我们用法或 React Native 的问题以及为什么我们停止投入资源和精力在 RN 上。 在这篇文章中,...

亦枫
07/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

MySQL 到底支不支持事务嵌套?

最近开发中遇到了使用MySQL,多次开启事务,出现了数据错乱问题,伪代码如下: begin; # 操作1 begin; # 操作2 rollback; 执行完后出现了操作1的数据真正写入,只有操作2的数据回滚...

宇润
15分钟前
0
0
fastDfs应用(安装过程待写)

1.效果 2.安装 2.1 导入已经安装好fastDFS的镜像 2.1.1 导入镜像 2.1.2 更改系统兼容性 2.1.3 开机 2.1.4 修改 一下内容 2.1.4.1 修改系统的ip 原来系统ip...

Lucky_Me
18分钟前
1
0
5. Python3源码—字符串(str)对象

5.1. 字符串对象 字符串对象是“变长对象”。 5.1.1. Python中的创建 Python中字符串(strs)对象最重要的创建方法为PyUnicode_DecodeUTF8Stateful,如下Python语句最终会调用到PyUnicode_D...

Mr_zebra
38分钟前
2
0
第十章:路由网关(Zuul)进阶:过滤器、异常处理

第十章:路由网关(Zuul)进阶:过滤器、异常处理 简单介绍了关于Zuul的一些简单使用以及一些路由规则的简单说明。而对于一个统一网关而言,需要处理各种各类的请求,对不同的url进行拦截,或者...

DemonsI
40分钟前
2
0
nginx屏蔽指定接口(URL)

Step1:需求 web平台上线后,需要屏蔽某个服务接口,但又不想重新上线,可以采用nginx屏蔽指定平台接口的办法 Step2:具体操作 location /dist/views/landing/UNIQUE_BEACON_URL { re...

Linux_Anna
48分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部