Expo大做战系列文章都在我都blog上贴着,朋友和我说掘金社区分享文章效果不错,故,来此分享一篇!html
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话很少说,接下来你看到内容,讲所有来与官网react
我猜去所有机翻+我的修改补充+demo测试的形式,对expo进行一次大补血!欢迎加入expo兴趣学习交流群:597732981git
【以前我写过一些列关于expo和rn入门配置的东i西,你们能够点击这里查看:从零学习rn开发】github
相关文章:web
Expo大做战(一)--什么是expo,如何安装expo clinet和xde,xde如何使用sql
Expo大做战(二)--expo的生命周期,expo社区交流方式,expo学习必备资源,开发使用expo时关注的一些问题数据库
Expo大做战(三)--针对已经开发过react native项目开发人员有针对性的介绍了expo,expo的局限性,开发时项目选型注意点等json
Expo大做战(四)--快速用expo构建一个app,expo中的关键术语react-native
Expo大做战(五)--expo中app.json 文件的配置信息api
Expo大做战(六)--expo开发模式,expo中exp命令行工具,expo中如何查看日志log,expo中的调试方式
Expo大做战(七)--expo如何使用Genymotion模拟器
Expo大做战(八)--expo中的publish以及expo中的link,对link这块东西没有详细看,你们能够来和我交流
写在二十三章之后的话,以前的翻译,无论如何,好与很差,终究是告一段落,也把expo基础理论的东西又深刻的理解了一遍,后续expo大做战系列将主要介绍expo sdk的api。
expo中提供的一个工具类,不适合其余地方的有用实用功能(Helpful utility functions that don’t fit anywhere else),包括一些本地化/国际化的方法(including some localization / i18n methods.)。
Expo.Util.getCurrentDeviceCountryAsync()
返回当前的设备国家代码。
Expo.Util.getCurrentLocaleAsync()
以字符串形式返回当前设备区域设置。
Expo.Util.getCurrentTimeZoneAsync()
返回当前设备时区名称。
Expo.Util.reload()
从新加载当前的体验(Reloads the current experience)。这将获取并加载设备的Expo环境支持的最新可用JS。若是您已发布新版本,这对触发更新体验颇有用。
仅限Android。当您的应用程序的新版本在后台成功下载时调用回调。
参数
listener(function) - 在后台成功下载新版本的应用程序时调用的回调函数。
返回
一个EventSubscription对象,当您想要从侦听器取消订阅时,您能够调用remove()。
EventSubscription
从addNewVersionListenerExperimental返回。
Event
新版本可用时传入每一个事件侦听器的对象。
鉴于视图,takeSnapshotAsync将基本上截取该视图并为您返回一个图像。 这对于签名板等用户很是有用,用户在其中绘制某些内容,而后想要从中保存图像。
快照给定的视图(Snapshots the given view)。
选项图(A map of options:):
选项参数中指定的格式的图像。(从这个title能够看出,其实就是截图)
一组绘图基元,如Circle,Rect,Path,ClipPath和Polygon。 它支持大多数SVG元素和属性。 该实现由react-native-svg提供,并在该存储库中提供文档。
import React, { Component } from 'react';
import { View, StyleSheet } from 'react-native';
import { Constants, Svg } from 'expo';
export default class App extends Component {
render() {
return (
<View style={styles.container}>
<Svg height={100} width={100}>
<Svg.Circle
cx={50}
cy={50}
r={45}
strokeWidth={2.5}
stroke="#e74c3c"
fill="#f1c40f"
/>
<Svg.Rect
x={15}
y={15}
width={70}
height={70}
strokeWidth={2}
stroke="#9b59b6"
fill="#3498db"
/>
</Svg>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
alignItems: 'center',
justifyContent: 'center',
paddingTop: Constants.statusBarHeight,
backgroundColor: '#ecf0f1',
},
});复制代码
这段代码运行效果:
这一章最后在说一下sqlite,expo中对sqlite作了很好的集成,sqlite是什么?是移动端手机内置的一个数据库,很好的利用sqlite,你就能打造牛逼的应用程序
该模块提供了一个能够经过相似WebSQL的API查询的数据库。 数据库在应用程序的从新启动之间持续存在。
这里有一个简单的demo。 我本人也有一个项目,对sqlite的运用。
打开一个数据库,建立它,若是它不存在,并返回一个数据库对象。
name (
) - 要打开的数据库文件的名称。
版本,描述和大小参数被忽略,但被函数接受以兼容WebSQL规范(but are accepted by the function for compatibility with the WebSQL specification.)。
返回一个数据库对象,以下所述。
数据库对象经过调用返回Expo.SQLite.openDatabase()。 这样的对象表示到设备上的数据库的链接。 他们支持一种方法:
db.transaction(callback, error, success)
执行数据库事务。
Transaction对象做为参数传递给数据库上的db.transaction()方法的回调参数(参见上文)。它容许排队SQL语句在数据库事务中执行。它支持一种方法:
tx.executeSql(sqlStatement, arguments, success, error)
排队要在事务中执行的SQL语句。强烈建议做者使用?该方法的占位符功能可避免SQL注入攻击,而且不会即时构建SQL语句。(注意这里)
ResultSet对象经过Transaction的tx.executeSql()方法的成功回调的第二个参数返回(参见上文)。 他们有如下形式:
下一张继续介绍,这一篇主要介绍了:expo sdk api之Util(expo自带工具类),tackSnapshotAsync,Svg,SQLite,欢迎你们关注个人微信公众号,这篇文章是否被你们承认,个人衡量标准就是公