`
jpush88
  • 浏览: 3623 次
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

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

阅读更多

 

推送已经是是手机应用的基本功能,如果自己实现一套推送系统费时费力,所有一般我们会使用第三方的推送服务,这里我使用 极光推送 作为集成推送的例子,因为有现成的 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 多了几个系统库,如下图所示


这些步骤都是自动完成的,不需要额外的操作。

添加代码
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 已经说得很清楚了,这里就不再重复

分享到:
评论

相关推荐

    react-native-device-info,React本机iOS和Android的设备信息.zip

    React Native 是一个流行的开源框架,它允许开发者使用JavaScript和React语法构建原生移动应用程序,同时在iOS和Android平台上运行。`react-native-device-info` 是一个专门为React Native设计的库,它提供了一组...

    一款基于react-native 的ios版 资讯头条 APP.zip

    本项目“资讯头条APP”便是一个利用React-Native技术构建的跨平台应用,支持iOS和Android双系统,充分展示了React-Native的强大功能和高效开发优势。 1. React-Native简介: React-Native是Facebook于2015年推出的...

    React-Native与原生交互通信方式

    虽然不是通信方式,但Code Push是一个相关工具,允许开发者在不发布新版本的情况下推送JavaScript代码更新。这对于快速迭代和修复问题非常有用,但可能需要原生代码配合实现。 在实际开发中,根据需求选择合适的...

    react-native-rtmpview

    React Native RtmpView是一款专为React Native开发的视频直播库,它允许开发者在iOS和Android平台上轻松集成视频直播功能。这个库的核心在于提供了一个跨平台的解决方案,使得开发者无需深入学习原生平台的多媒体...

    reactnative集成友盟推送

    React Native 集成友盟推送详解 在移动应用开发中,推送服务是不可或缺的一环,它能够实时向用户发送消息,提升用户活跃度。友盟推送(UMeng Push)作为国内知名的推送服务商,提供了丰富的功能和良好的兼容性。...

    expo是create-react-native-app 实用安卓app,亲测可用

    Expo不仅仅是一个框架,它还是一个完整的生态系统,提供了许多预封装的库和服务,包括相机、地理位置、推送通知等,使得开发者能够快速实现各种功能。Expo的工作流程包括开发、测试、预览和发布应用,而且它还支持热...

    Weekly75, react-native iOS版奇舞周刊.zip

    在iOS项目中集成React-Native,需要安装CocoaPods、配置Podfile并添加React-Native库,然后运行pod install命令。此外,还需要配置Xcode项目,比如设置Info.plist中的JSBundleURL和主工程的启动文件。 3. **组件...

    React-Native淘宝客APP小程序.zip

    8. **原生模块集成**:对于某些特定的原生功能,如推送通知、地理位置服务等,可能需要集成原生模块,这需要对iOS的Objective-C或Swift,以及Android的Java或Kotlin有一定的了解。 9. **发布与打包**:了解如何配置...

    react-native-push-notification:React本机本地和远程通知

    React本机推送通知 React适用于iOS和Android的本机本地和远程通知 :party_popper: 版本7.x上线了! :party_popper: 在CHANGELOG中查看更改和迁移:支持项目维护该项目需要时间。 为了分配时间,您可以给我买一杯咖啡...

    react-native-aliyun-push:阿里云推送SDK的React Native包装器

    升级阿里云移动推送sdk ios v1.9.9 v1.0.19 更新了第三方辅助通道SDK至3.0.9 升级阿里云移动推送sdk android v3.1.6 更新Android buildTools版本至28.0.3 v1.0.18 更新了第三方辅助通道SDK至3.0.6,支持了OPPO v...

    使用react-native新版本(0.71)快速开发APP项目详细介绍(ts+zustand+react-navigation

    React Native是一个开源框架,允许开发者使用JavaScript和React来构建原生移动应用程序,它极大地提高了开发效率,使得Web开发者可以跨平台开发iOS和Android应用。 1. **TypeScript (ts)**:在本项目中,TypeScript...

    React-Native组件.pdf

    网易云信IM组件:提供了即时通讯的能力,使得开发者可以快速集成聊天、消息推送等功能。 WebView组件:用于展示网页内容,提供了高度自适应等特性,使得网页能够在移动设备上良好显示。 瀑布流布局组件:这种布局...

    react-native使用leanclound消息推送的方法

    总结来说,集成React-Native和LeanCloud消息推送的关键步骤包括:初始化React-Native项目,创建 LeanCloud 应用,安装并配置相关依赖,设置iOS推送通知,以及编写处理推送逻辑的代码。通过这种方式,你可以实现在...

    react-native学习代码包括项目(React Native跨平台开发,从零基础入门到项目实战-6天)

    在实际项目实战阶段,AwesomeProject2可能是一个包含多个屏幕和功能的示例应用,如登录注册、数据展示、导航和推送通知等。通过实践,你会学习如何设置项目结构,管理依赖,调试应用,以及发布到App Store和Google ...

    react-native-pushy, ReactNative中文网推出的代码热更新服务.zip

    3. **特性添加**: 新增功能无需等待App Store或Google Play的审核流程,可立即推送给用户。 4. **性能优化**: 由于热更新仅替换需要更新的部分代码,而非整个应用,因此相比于传统应用更新,其下载速度更快,节省了...

    Swift-react-native自建热更新版本升级工具demoios

    接下来,React Native的热更新机制通常依赖于`react-native-code-push`,这是一个由微软开发的开源库,允许开发者推送JavaScript和资源文件的更新,无需用户重新安装应用。然而,对于iOS端,可能由于某些限制或特定...

    react-native-code-push

    "React-Native-Code-Push" 是一个由微软开发的开源库,专为React Native应用程序设计,用于实现热更新功能。这个工具允许开发者在不发布新版本应用到应用商店的情况下,将代码更新推送到用户的设备上,极大地提高了...

    React-Native Android 与 IOS App使用一份代码实现方法

    - 社区提供了大量的React-Native第三方库,很多都支持多平台,可以用来扩展功能,如网络请求库axios、推送通知库react-native-push-notification等。 - 对于平台特有的API调用,如访问设备的GPS位置,可以使用`...

    react-native-chat-demo-master.zip_DEMO_React_react native_react

    本篇文章将基于“react-native-chat-demo-master.zip”这个DEMO,深入探讨如何利用React Native构建一个聊天应用。 一、React Native基础知识 React Native的核心理念是“Learn once, write anywhere”,这意味着...

Global site tag (gtag.js) - Google Analytics