zoukankan      html  css  js  c++  java
  • 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.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),欢迎大家关注我的微信公众号,这篇文章是否被大家认可,我的衡量标准就是公众号粉丝增长人数。欢迎大家转载,但必须保留本人博客链接!

     

  • 相关阅读:
    Json基本使用方法
    Java编程思想(20170818)
    FireFox加载Lodop控件
    泛型
    设计模式原则
    设计模式
    设计模式3.1:简单工厂模式
    设计模式2,模板方法
    spring -- AutoCloseable 作用
    spring 源码方法概要
  • 原文地址:https://www.cnblogs.com/gdsblog/p/8601333.html
Copyright © 2011-2022 走看看