简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网
我猜去全部机翻+个人修改补充+demo测试的形式,对expo进行一次大补血!欢迎加入expo兴趣学习交流群:597732981
【之前我写过一些列关于expo和rn入门配置的东i西,大家可以点击这里查看:从零学习rn开发】
相关文章:
Expo大作战(一)--什么是expo,如何安装expo clinet和xde,xde如何使用
Expo大作战(二)--expo的生命周期,expo社区交流方式,expo学习必备资源,开发使用expo时关注的一些问题
Expo大作战(三)--针对已经开发过react native项目开发人员有针对性的介绍了expo,expo的局限性,开发时项目选型注意点等
Expo大作战(四)--快速用expo构建一个app,expo中的关键术语
Expo大作战(五)--expo中app.json 文件的配置信息
Expo大作战(六)--expo开发模式,expo中exp命令行工具,expo中如何查看日志log,expo中的调试方式
Expo大作战(七)--expo如何使用Genymotion模拟器
Expo大作战(八)--expo中的publish以及expo中的link,对link这块东西没有详细看,大家可以来和我交流
写在二十三章以后的话,之前的翻译,不管如何,好与不好,终究是告一段落,也把expo基础理论的东西又深入的理解了一遍,后续expo大作战系列将主要介绍expo sdk的api。
权限(Permissions)
当添加可访问用户设备上潜在敏感信息的功能(例如其位置)时,或可能向其发送可能不需要的推送通知时,您需要首先询问用户的许可。 除非你已经征求他们的许可,否则不需要(Unless you’ve already asked their permission, then no need)。 所以我们有权限模块。
如果您正在将应用程序部署到Apple iTunes Store,则应考虑向应用程序添加其他元数据,以便自定义系统权限对话框并解释您的应用程序需要权限的原因。 请参阅App Store部署指南中的更多信息。
Expo.Permissions.getAsync(type)
确定您的应用是否已被授予对提供的权限类型的访问权限。
参数
type(string) - 权限的名称。
返回
返回使用关于权限的信息解决的Promise,包括状态,到期和范围(如果它适用于权限类型)。(Returns a Promise
that is resolved with the information about the permission, including status, expiration and scope (if it applies to the permission type).)
async function alertIfRemoteNotificationsDisabledAsync() {
const { Permissions } = Expo;
const { status } = await Permissions.getAsync(Permissions.NOTIFICATIONS);
if (status !== 'granted') {
alert('Hey! You might want to enable notifications for my app, they are good.');
}
}复制代码
Expo.Permissions.askAsync(type)
提示用户获得许可。 如果他们已经授予访问权限,则回应将成功。
参数
type(string) - 权限的名称。
返回
返回使用关于权限的信息解决的Promise,包括状态,到期和范围(如果它适用于权限类型)。
async function getLocationAsync() {
const { Location, Permissions } = Expo;
const { status } = await Permissions.askAsync(Permissions.LOCATION);
if (status === 'granted') {
return Location.getCurrentPositionAsync({enableHighAccuracy: true});
} else {
throw new Error('Location permission not granted');
}
}复制代码
Expo.Permissions.NOTIFICATIONS
本地和推送通知的权限类型。
注意:在iOS上,这不会消除未确定 拒绝,因此只会返回已授予或未确定。 这是由于底层本机API的实现方式所致。
Expo.Permissions.LOCATION
位置访问权限类型。
Expo.Permissions.CAMERA
照片和视频拍摄的许可类型。
Expo.Permissions.AUDIO_RECORDING
音频录制的许可类型。
Expo.Permissions.CONTACTS
阅读联系人的权限类型。
Expo.Permissions.CAMERA_ROLL
用于读取或写入相机的许可类型。
计步器(Pedometer)
使用Core Motion(iOS)或Google Fit(Android)获取用户的步数。
Expo.Pedometer.isAvailableAsync()
确定计步器是否可用。
返回
返回一个可解析为布尔值的承诺,指示计步器是否在此设备上可用。
Expo.Pedometer.getStepCountAsync(start, end)
获取两个日期之间的步数。
参数
start(datetime) - 指示测量步骤的范围开始的日期。
end(end) - 指示测量步骤的范围结束的日期。
返回
返回一个使用steps键解析为Object的promise,它是一个Number,表示在给定日期之间所采用的步数。
Expo.Pedometer.watchStepCount(callback)
订阅计步器更新。
参数
回调函数(callback)当新的步数数据可用时调用的回调函数。 该回调提供了一个单个参数,该参数是具有步骤键的对象。
返回
一个EventSubscription对象,当您想要取消订阅侦听器时,您可以调用remove()。
下一张继续介绍,这一篇主要介绍了:expo sdk api之Permissions(权限管理模块)
,