React Native使用指南-使用链接库

并不是所有的APP都需要使用全部的原生功能,包含支持全部特性的代码会增大应用的体积。但我们仍然希望能让你简单地根据自己的需求添加需要的特性。

在这种思想下,我们把许多特性都发布成为互不相关的静态库。

大部分的库只需要拖进两个文件就可以使用了,偶尔你还需要几步额外的工作,但不会再有更多的事情要做了。

我们随着React Native发布的所有库都在仓库中的Libraries文件夹下。其中有一些是纯Javascript代码,你只需要去require它们就可以使用了。另外有一些库基于一些原生代码实现,你必须把这些文件添加到你的应用,否则应用会在你使用这些库的时候产生报错。

添加包含原生代码的库需要几个步骤:

自动链接

"rnpm"是一个社区项目,可以提供原生依赖的自动链接。

第一步

首先安装rnpm

$ npm install rnpm -g

注意: rnpm需要node 4.1或更高版本。

第二步

安装一个带原生依赖的库: 

$ npm install <library-with-native-dependencies> --save

注意: 这一步中--save--save-dev参数是非常重要的。rnpm需要根据package.json文件中的dependenciesdevDependencies记录来链接库。

第三步

链接原生依赖: 

$ rnpm link

完成了!现在所有的原生依赖都成功地链接到你的iOS/Android项目了。

手动链接

第一步

如果该库包含原生代码,那么在它的文件夹下一定有一个.xcodeproj文件。 把这个文件拖到你的XCode工程下(通常拖到XCode的Libraries分组里)

第二步

点击你的主工程文件,选择Build Phases,然后把刚才所添加进去的.xcodeproj下的Products文件夹中的静态库文件(.a文件),拖到Link Binary With Libraries组内。

第三步

不是所有的库都需要进行这个步骤,你需要考虑的问题在于:

我需要在编译的期间了解库的内容吗?

这个问题的意思是,你是需要在原生代码中使用这个库,还是只需要通过JavaScript访问?如果你只需要通过JavaScript访问这个库,你就可以跳过这步了。

这一步骤对于我们随React Native发布的大部分库来说都不是必要的,但有两个例外是PushNotificationIOSLinkingIOS

PushNotificationIOS为例,你需要在AppDelegate每收到一条推送通知之后,调用库中的一个方法。

这种情况下我们需要能够访问到库的头文件。为了能够顺利打包,你需要打开你的工程文件,选择Build Settings,然后搜索Header Search Paths,然后添加库所在的目录(如果它还有像React这样的子目录需要包含,注意要选中recursive选项)


本文转自React Native中文网:http://reactnative.cn/docs/0.20/linking-libraries-ios.html#content

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/500024.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[网络]------TCP UDP HTTP Socket 区别

关于这几个的概念,网上已经很全面了,在这个做个笔记: 前提须知: 1.协议就是大家提前约定的一种规范,后人照着这个遵循就可以,也可以将语言理解为一种协议 2.网络通信的世界中,有七层协议(应用层,表示层,会话层,传输层,网络层,数据链路层,物理层) 正题: 1.TCP和UDP都属于传…

React Native使用指南-在设备上运行

注意在iOS设备上运行React Native应用需要一个Apple Developer account并且把你的设备注册为测试设备。本向导只包含React Native相关的主题。 译注&#xff1a;从XCode 7起&#xff0c;在自己的设备上调试App不再需要开发者账户了。 从设备访问开发服务器 在启用开发服务器的情…

java 贪吃蛇游戏

前言 此实现较为简陋&#xff0c;如有错误请指正。 其次代码中的图片需要自行添加地址并修改。 主类 public class Main { public static void main(String[] args) { new myGame(); } } 1 2 3 4 5 游戏类 import javax.swing.*; import java.awt.eve…

java方向好看的书

从Lucene到ElasticSearch:全文检索实战 大数据架构详解&#xff1a;从数据获取到深度学习 代码整洁之道 架构解密&#xff1a;从分布式到微服务 从Paxos到Zookeeper分布式一致性原理与实践 大型网站技术架构 核心原理与案例分析 分布式服务架构&#xff1a;原理、设计与实…

React Native使用指南-植入原生应用

由于React并没有假设你其余部分的技术栈——它通常只作为MVC模型中的V存在——它也很容易嵌入到一个并非由React Native开发的应用当中。实际上&#xff0c;它可以和常见的许多工具结合&#xff0c;譬如CocoaPods。 需求 CocoaPods – gem install cocoapodsNode.js 安装 nvm&a…

[数据库]---nosql,非关系型数据库整理

1.关系型数据库与非关系型数据库的区别 Tables关系型数据库非关系型数据库成本好的收费开源的,都免费的存储与查询硬盘存储,相对查的慢内存存储,查的快存储格式只能是基本格式多种多样年龄出现时间较长,较成熟后起之秀,不可小觑扩展性join等不好扩展方便集群事务强事务弱事务查…

React Native开发指南-在原生和React Native间通信

通过植入原生应用和原生UI组件两篇文档&#xff0c;我们学习了React Native和原生组件的互相整合。在整合的过程中&#xff0c;我们会需要在两个世界间互相通信。有些方法已经在其他的指南中提到了&#xff0c;这篇文章总结了所有可行的技术。 简介 React Native是从React中得到…

数据迁移记录

做数据迁移,数据库是分两片,每片一主两从,没有读写分离 前提: 使用服务器1:2核4G内存40G硬盘 线程池:5个 每个线程分页查询,每页1000条 平均数据是一天一个线程,一天3万数据,所以大概就是30页的分页深度 服务器1的数据: cpu使用率在74%上下(有点高,2核的毕竟比不过4核的…

RPC协议简介

一、概述 1.英文原义&#xff1a;Remote Procedure Call Protocol 2.中文释义&#xff1a;&#xff08;RFC-1831&#xff09;远程调用协议 。 3.注解&#xff1a;一种通过网络从远程计算机程序上请求服务&#xff0c;而不需要了解底层网络技术的协议。 4.说明&#xff1a;RPC…

mysql分页查询报错,及解决

mysql分页查询报错: 前提: 1.每页1000条数据 2.查到57页的时候,就报错了 以下是错误信息: org.springframework.jdbc.UncategorizedSQLException: ### Error querying database. Cause: java.sql.SQLException: ...省略中间... received message larger than max (1844105…

RPC协议与Web Service

一、引入 我们每天都在使用浏览器来上网冲浪, 在查找自己需要的资源, HTTP协议自然是我们使用的最多的 一种, 我们尽情地享受着这种信息高速路的快感,却没有试图去了解我们是如何获得这些资源的? 它是一种什么样的设计理念? 我们也偶尔会使用 Gtalk来和自己的同事或者朋友来聊…

如何设置电脑开机自动提示(防止忘打卡等)

如何设置电脑开机自动提示: 第一种方法: 第一步:CtrlR 输入mmc命令打开 文件-添加/删除管理单元-组策略对象编辑器-添加-确定-确定(都是默认的)。 第二步:退出小框,会看见有个”本地计算机 策略”,打开-计算机配置-windows设置-安全设置-本地策略-安全选项 双击”交互式登…

RestFull架构

1 什么是REST REST全称是Representational State Transfer&#xff0c;中文意思是表述性状态转移。 它首次出现在2000年Roy Fielding的博士论文中&#xff0c;Roy Fielding是 HTTP 规范的主要编写者之一。 他在论文中提到:“我这篇文章的写作目的&#xff0c;就是想在符合架构原…

SpringMVC默认访问路径配置

SpringMVC默认访问路径配置 需求:只访问域名,不加任何action路径,想访问默认的一个action. 比如www.jd.com,就跳到京东首页,会加载出辣么多东西来 关于这个的方法,网上有千千万种,在这里只是记录一种常用的, 亲测这个可以用,而且我们的项目一直都是这个套路. 第一步,web.x…

controller中执行main方法报错NoClassDefFoundError: javax/servlet/http/HttpServletResponse

controller中执行main方法报了这个错:NoClassDefFoundError: javax/servlet/http/HttpServletResponse,如下图: NoClassDefFoundError: javax/servlet/http/HttpServletResponse NoClassDefFoundError: javax/servlet/http/HttpServletRequest同理 原因是本地没有引入servlet…

初探Backbone

Backbone简介 中文API&#xff1a;http://www.css88.com/doc/backbone/ 英文API&#xff1a;http://backbonejs.org/ Backbone是构建javascript应用程序的一个优秀的类库。他简洁、轻量级、功能实在。 backbone采用MVC模式&#xff0c;本身提供了模型、控制器和视图从而我们应用…

订单量的监控

要解决的问题 : 1.在电商项目中,如何准确的知道当前订单量是正常的 2.如何在订单量突变后快速感知 解决思路 : 实现一个关于订单量的监控系统,将历史数据与实时数据做对比,因为每天的订单量,基本都是一个相似的变化范围,比如凌晨4点的单量是一天中最少的,节假日的单量要小于工…

JQuery初探

一、JQuery是什么&#xff1f; JQuery 是一套JavaScript库&#xff0c; 使用它&#xff0c;可以很方便的进行 JavaScript的编程。比如&#xff1a; 获取页面元素&#xff0c; 修改页面元素的CSS样式等等都可以以很简单的语法完成。节省代码行数和减少开发的时间。 物理上来看就…

BigDecimal的异常记录:java.lang.ArithmeticException: Rounding necessary

记一次报错,代码样例: public static void main(String[] args) {BigDecimal bigDecimal new BigDecimal(1234.5);int res bigDecimal.intValueExact();} 报错信息: Exception in thread "main" java.lang.ArithmeticException: Rounding necessaryat java.math.…

JavaScript历史与ECMAScript

一、前言为了发挥 JavaScript 的全部潜力&#xff0c;了解它的本质、历史及局限性是十分重要的。本节为您讲解 JavaScript 和客户端脚本的起源。二、Nombas 和 ScriptEase大概在 1992 年&#xff0c;一家称作 Nombas 的公司开发了一种叫做 C 减减&#xff08;C-minus-minus&…