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

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

IOS小彩虹2021-07-13 4:07:2270A+A-

简要:本系列文章讲会对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(权限管理模块)

,
Pedometer(计步器api), 欢迎大家关注我的微信公众号,这篇文章是否被大家认可,我的衡量标准就是公 众号粉丝增长人数。欢迎大家转载,但必须保留本人博客链接!


点击这里复制本文地址 以上内容由权冠洲的博客整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

支持Ctrl+Enter提交

联系我们| 本站介绍| 留言建议 | 交换友链 | 域名展示
本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除

权冠洲的博客 © All Rights Reserved.  Copyright quanguanzhou.top All Rights Reserved
苏公网安备 32030302000848号   苏ICP备20033101号-1

联系我们