React Native模块之Permissions权限申请的实例相机


Posted in Javascript onSeptember 28, 2017

React Native模块之Permissions权限申请的实例详解

前言

对于移动开发,我们知道Android 6.0之后对于权限管理做了很大的升级,其类似于IOS的管理管理方式需要用手动授权是否允许使用当前权限, 在RN开发中同样存在这样一个模块。

处理方法

在RN中提供了一个PermissionsAndroid的模块, 可以访问Android M(也就是6.0)开始提供的权限模型。有一些权限写在AndroidManifest.xml就可以在安装时自动获得。但有一些“危险”的权限则需要弹出提示框供用户选择。本API即用于后一种情形。

在低于Android 6.0的设备上,权限只要写在AndroidManifest.xml里就会自动获得,此情形下check和request 方法将始终返回true。

async function requestCameraPermission() {
 try {
  const granted = await PermissionsAndroid.request(
   PermissionsAndroid.PERMISSIONS.CAMERA,
   {
    'title': 'Cool Photo App Camera Permission',
    'message': 'Cool Photo App needs access to your camera ' +
          'so you can take awesome pictures.'
   }
  )
  if (granted === PermissionsAndroid.RESULTS.GRANTED) {
   console.log("You can use the camera")
  } else {
   console.log("Camera permission denied")
  }
 } catch (err) {
  console.warn(err)
 }
}

常用

check(permission)

返回一个promise,最终值为用户是否授权过的布尔值。

request(permission, rationale?)

弹出提示框向用户请求某项权限。返回一个promise,最终值为用户是否同意了权限申请的布尔值。

requestMultiple(permissions)

在一个弹出框中向用户请求多个权限。返回值为一个object,key为各权限名称,对应值为用户授权与否。

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
jQuery 数据缓存data(name, value)详解及实现
Jan 04 Javascript
jQuery-Easyui 1.2 实现多层菜单效果的代码
Jan 13 Javascript
JS中showModalDialog 的使用解析
Apr 17 Javascript
jQuery中:last-child选择器用法实例
Dec 31 Javascript
浅谈javascript的调试
Jan 28 Javascript
Jquery简单实现GridView行高亮的方法
Jun 15 Javascript
基于jQuery实现点击最后一行实现行自增效果的表格
Jan 12 Javascript
非常漂亮的相册集 使用jquery制作相册集
Apr 28 Javascript
angular.js指令中transclude选项及ng-transclude指令详解
May 24 Javascript
富文本编辑器vue2-editor实现全屏功能
May 26 Javascript
微信小程序(订阅消息)功能
Oct 25 Javascript
vue中上传视频或图片或图片和文字一起到后端的解决方法
Dec 01 Javascript
Node.js学习之查询字符串解析querystring详解
Sep 28 #Javascript
angular4自定义组件详解
Sep 28 #Javascript
详解Vue路由History mode模式中页面无法渲染的原因及解决
Sep 28 #Javascript
Node.js利用断言模块assert进行单元测试的方法
Sep 28 #Javascript
详解基于vue-router的动态权限控制实现方案
Sep 28 #Javascript
node.js学习之断言assert的使用示例
Sep 28 #Javascript
vue-router+vuex addRoutes实现路由动态加载及菜单动态加载
Sep 28 #Javascript
You might like
磨咖啡豆的密诀
2021/03/03 冲泡冲煮
PHP面向对象学习笔记之一 基础概念
2012/10/06 PHP
php cc攻击代码与防范方法
2012/10/18 PHP
destoon实现首页显示供应、企业、资讯条数的方法
2014/07/15 PHP
Thinkphp5框架使用validate实现验证功能的方法
2019/08/27 PHP
Mozilla 表达式 __noSuchMethod__
2009/04/05 Javascript
JS仿百度搜索自动提示框匹配查询功能
2013/11/21 Javascript
js分页代码分享
2014/04/28 Javascript
Bootstrap基本插件学习笔记之Tooltip提示工具(18)
2016/12/08 Javascript
vue-router动态设置页面title的实例讲解
2018/08/30 Javascript
JavaScript模板引擎原理与用法详解
2018/12/24 Javascript
微信小程序使用map组件实现获取定位城市天气或者指定城市天气数据功能
2019/01/22 Javascript
详解Vue中watch对象内属性的方法
2019/02/01 Javascript
vue项目引入ts步骤(小结)
2019/10/31 Javascript
封装 axios+promise通用请求函数操作
2020/08/11 Javascript
react+antd 递归实现树状目录操作
2020/11/02 Javascript
python使用ctypes模块调用windowsapi获取系统版本示例
2014/04/17 Python
决策树的python实现方法
2014/11/18 Python
Python zip()函数用法实例分析
2018/03/17 Python
python版opencv摄像头人脸实时检测方法
2018/08/03 Python
python按时间排序目录下的文件实现方法
2018/10/17 Python
Python从函数参数类型引出元组实例分析
2019/05/28 Python
浅谈django url请求与数据库连接池的共享问题
2019/08/29 Python
python3反转字符串的3种方法(小结)
2019/11/07 Python
pytorch获取模型某一层参数名及参数值方式
2019/12/30 Python
使用python接受tgam的脑波数据实例
2020/04/09 Python
基于python实现把json数据转换成Excel表格
2020/05/07 Python
python 将列表里的字典元素合并为一个字典实例
2020/09/01 Python
python获取linux系统信息的三种方法
2020/10/14 Python
前端面试必备之html5的新特性
2017/09/05 HTML / CSS
基于html5 canvas做批改作业的小插件
2020/05/20 HTML / CSS
LACOSTE波兰官网:Polo衫、服装和鞋类
2020/09/29 全球购物
工会换届选举方案
2014/05/21 职场文书
上课随便讲话检讨书
2014/09/12 职场文书
房屋产权证明书
2014/10/15 职场文书
go语言基础 seek光标位置os包的使用
2021/05/09 Golang