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 相关文章推荐
javascript 面向对象编程基础:继承
Aug 21 Javascript
JavaScript 垃圾回收机制分析
Oct 10 Javascript
用简洁的jQuery方法toggleClass实现隔行换色
Oct 22 Javascript
JS和jQuery使用submit方法无法提交表单的原因分析及解决办法
May 17 Javascript
AngularJS 实现弹性盒子布局的方法
Aug 30 Javascript
JS中动态创建元素的三种方法总结(推荐)
Oct 20 Javascript
基于layer.js实现收货地址弹框选择然后返回相应的地址信息
May 26 Javascript
vue中axios处理http发送请求的示例(Post和get)
Oct 13 Javascript
Vue Socket.io源码解读
Feb 07 Javascript
浅谈Node 异步IO和事件循环
May 05 Javascript
解决vue 子组件修改父组件传来的props值报错问题
Nov 09 Javascript
VSCode插件安装完成后的配置(常用配置)
Aug 24 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
PHP与MySQL开发的8个技巧小结
2010/12/17 PHP
php 抽象类的简单应用
2011/09/06 PHP
PHP实现的mysql操作类【MySQL与MySQLi方式】
2017/10/07 PHP
jquery 新浪网易的评论块制作
2010/07/01 Javascript
js获取元素到文档区域document的(横向、纵向)坐标的两种方法
2013/05/17 Javascript
JQuery文字列表向上滚动的代码
2013/11/13 Javascript
JS过滤url参数特殊字符的实现方法
2013/12/24 Javascript
你可能不知道的JavaScript的new Function()方法
2014/04/17 Javascript
JavaScript返回网页中锚点数目的方法
2015/04/03 Javascript
让JavaScript中setTimeout支持链式操作的方法
2015/06/19 Javascript
JavaScript保存并运算页面中数字类型变量的写法
2015/07/06 Javascript
jQuery横向擦除焦点图特效代码分享
2015/09/06 Javascript
实例详解jQuery表单验证插件validate
2016/01/18 Javascript
JS获取当前使用的浏览器名字以及版本号实现方法
2016/08/19 Javascript
jQuery实现手机版页面翻页效果的简单实例
2016/10/05 Javascript
详解Angular的内置过滤器和自定义过滤器【推荐】
2016/12/26 Javascript
原生JS实现的简单轮播图功能【适合新手】
2018/08/17 Javascript
jQuery实现动态添加和删除input框代码实例
2019/03/29 jQuery
Element InputNumber计数器的使用方法
2020/07/27 Javascript
elementui更改el-dialog关闭按钮的图标d的示例代码
2020/08/04 Javascript
一起深入理解js中的事件对象
2021/02/06 Javascript
Python单链表的简单实现方法
2014/09/23 Python
通过数据库对Django进行删除字段和删除模型的操作
2015/07/21 Python
python类:class创建、数据方法属性及访问控制详解
2016/07/25 Python
Django中多种重定向方法使用详解
2019/07/17 Python
Python sys模块常用方法解析
2020/02/20 Python
django 链接多个数据库 并使用原生sql实现
2020/03/28 Python
使用Python和百度语音识别生成视频字幕的实现
2020/04/09 Python
Python调用.net动态库实现过程解析
2020/06/05 Python
Django:使用filter的pk进行多值查询操作
2020/07/15 Python
html5 Canvas画图教程(2)—画直线与设置线条的样式如颜色/端点/交汇点
2013/01/09 HTML / CSS
深深扎根运动世界的生活品牌:Tillys
2017/10/30 全球购物
2014年公司工作总结
2014/11/22 职场文书
七年级写作指导之游记作文
2019/10/07 职场文书
Python 类,对象,数据分类,函数参数传递详解
2021/09/25 Python
如何利用 CSS Overview 面板重构优化你的网站
2021/10/24 HTML / CSS