文档章节

React-Native 工程添加推送功能 (iOS 篇)

极光推送
 极光推送
发布于 2017/04/24 11:31
字数 832
阅读 15
收藏 0

推送已经是是手机应用的基本功能,如果自己实现一套推送系统费时费力,所有一般我们会使用第三方的推送服务,这里我使用「极光推送」作为集成推送的例子,因为有现成的 react native 插件 jpush-react-native 可以使用。

前置准备工作

安装软件

  • react native (0.41.2)
  • npm (V3.10.3)
  • xcode (V8.2.1)

创建工程

  • 在 Apple developer 上创建应用
  • 并且给应用配置推送功能,创建推送证书
  • 极光官网 上创建自己的应用,并上传证书
  • 创建 React-Native 工程,修改 bundle identifier ,保证和在 Apple developer 上创建的应用一直。(Project -> Target -> General -> bundle identifier)
  • xcode 8 版本的话还需要在 (Project -> Target -> Capabilities ) 吧Push Notification 选项点开 第一、二、三 步骤的详细介绍可以观看 官方集成视频, 这里就不在重复。 (如果已有工程,则只需要完成第二和第三项步骤)

集成 jpush-react-native

配置工程

在完成上面的准备工作后,我们就可以正式开始插件的集成,这里会解释每个步骤背后都做了哪些操作。 按照官方的集成说明安装 jpush-react-native (这里使用最新版本 V1.5.0)

1. 安装 jpush-react-native 插件

npm install jpush-react-native --save

安装完后可以看到 package.json 的 dependencies 字段多了 "jpush-react-native" 依赖

2. 然后安装 jcore-react-native 插件

npm install jcore-react-native --save

安装完后可以看到 package.json 的 dependencies 字段多了 "jcore-react-native" 依赖。 由于极光开发者服务 SDK 采用了模块化的使用模式,即一个核心(JCore)+N种服务(JPush,JAnalytics,...)的使用方式,所以把公共核心代码分离出来,这样在使用极光推送多种服务的时候不会出现冲突。

3. 链接工程

react-native link

这个步骤,其实是吧 jpush plugin 工程添加到 自己的项目工程里面,可以看到 Libraries 目录多了一个 RCTJPushModule.xcodeproj 工程文件,如下图所示

同时这个步骤还会自动把 JPush 所依赖的库自动添加到工程中,可以看到 TARGETS -> Build phases -> Link Binary With Libraries 多了几个系统库,如下图所示

这些步骤都是自动完成的,不需要额外的操作。 然后把 其中一个库 UserNotification.framework status 设为 Optional

添加代码

1. 自动添加代码

jpush-react-native 插件提供了自动配置脚本

npm run configureJPush <yourAppKey> <yourModuleName>

把 <yourAppKey> 换成自己的 AppKey (在极光官网上创建应用可以获得一个 Appkey) <yourModuleName> 指的是你 Android 项目中的模块名字(对 iOS 没有影响,不填写的话默认值为 app,会影响到查找 AndroidManifest 问题。

这个脚本会自动吧极光推送的代码插入到 Appdelegate.m 中。 到这一步 jpush-react-native 插件已经集成完毕。 我们试着这编译自己工程,如果出现找不到头文件的情况则需要在 iOS 工程中如果找不到头文件可能要在 TARGETS-> BUILD SETTINGS -> Search Paths -> Header Search Paths 添加如下如路径

$(SRCROOT)/../node_modules/jpush-react-native/ios/RCTJPushModule/RCTJPushModule

2. 手动添加代码

手动添加代码部分 jpusn-react-native ReadMe 已经说得很清楚了,这里就不再重复


作者:HuminiOS - 极光

原文:React-Native 工程添加推送功能 (iOS 篇)

知乎专栏:极光日报

© 著作权归作者所有

共有 人打赏支持
极光推送
粉丝 43
博文 202
码字总数 218805
作品 1
深圳
个人站长
私信 提问
react-native 使用leanclound消息推送

iOS消息推送的基本流程 1.注册:为应用程序申请消息推送服务。此时你的设备会向APNs服务器发送注册请求。2. APNs服务器接受请求,并将deviceToken返给你设备上的应用程序 3.客户端应用程序将...

ding_ios
2018/08/05
0
0
ReactNative学习笔记(一)

一.ReactNative 环境搭建 1.参考指南 reactnative.cn/docs/0.48/getting-started.html#content ReactNative 中文网,集成步骤详细,按步骤一步步来,这里就不赘述了。 2.遇到的问题 如果你按...

朱敏_ITer
2017/09/10
0
0
iOS原生混合RN开发最佳实践

做过原生iOS开发或者Android开发的同学们肯定也都了解Hybrid,有一些Hybrid的开发经验,目前我们企业开发中运用最广泛的Hybrid App技术就是原生与H5 hybrid,在早期的时候,可能部分同学也接...

光强
2018/05/16
0
0
Formik官方应用案例解析( 五)React Native

Hello React Native 在创建一个入门的Hello React Native工程时遇到一些麻烦,主要原因是Xcode版本太低。 使用create-react-native-app快速创建React Native框架 开发React相关项目,我使用的...

googlingman
2018/08/06
0
0
Udacity也弃用React Native了 !看看他们使用React Native过程中遇到了哪些问题

Udacity也弃用React Native了 !看看他们使用React Native过程中遇到了哪些问题 2018-07-12 10:29编辑: 枣泥布丁分类:程序人生来源:程序师 React Native弃用Udacity 招聘信息: iOS开发 ...

枣泥布丁
2018/07/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

导出表格

https://blog.csdn.net/hhzzcc_/article/details/80419396

Js_Mei
6分钟前
0
0
Ubuntu中安装Elasticsearch

1.安装jre elasticsearch是使用java开发的搜索引擎,因此其运行依赖于java runtime environment,我们在这里不使用Oracel的官方jre,改为使用open-jre。 运行环境: ubuntu:18.04 jre:openj...

cloes
23分钟前
0
0
nginx rails 详细站点配置入门教程

Ruby on Rails 是一个用于开发数据库驱动的网络应用程序的完整框架。Rails基于MVC(模型- 视图- 控制器)设计模式。从视图中的Ajax应用,到控制器中的访问请求和反馈,到封装数据库的模型,R...

xiangyunyan
51分钟前
3
0
Shiro

Shiro是Apache的一个开源框架,是一个权限管理的框架,实现用户认证、用户授权等。 只要有用户参与一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户...

嘿嘿嘿IT
55分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部