Expo大作战(三十)--expo sdk api之Permissions(权限管理模块),Pedometer(计步器api)

Expo大作战(三十)--expo sdk api之Permissions(权限管理模块),Pedometer(计步器api)

简要:本系列文章讲会对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大作战(三十)--expo sdk api之Permissions(权限管理模块),Pedometer(计步器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(权限管理模块),Pedometer(计步器api),欢迎大家关注我的微信公众号,这篇文章是否被大家认可,我的衡量标准就是公众号粉丝增长人数。欢迎大家转载,但必须保留本人博客链接!

 

Expo大作战(三十)--expo sdk api之Permissions(权限管理模块),Pedometer(计步器api)

上一篇:HDFS概述(4)————HDFS权限


下一篇:HDFS权限