UIImagePickerController在ios10环境一打开就crash的问题
在之前的系统环境下,UIImagePickerController都可以顺利打开。但是自从手机升级了ios10以后,每次打开相机和照片库都会直接崩溃。
通过google搜索找到StackOverflow的帖子,简单讲就是从ios10开始,调用用户相机和访问照片库都需要先获取使用权限。具体的方法就是在info.plist文件中添加以下两项内容:
获取相机权限:
<key>NSCameraUsageDescription</key>
<string>use camera reason</string>
获取照片库权限:
<key>NSPhotoLibraryUsageDescription</key>
<string>use photos reason</string>
添加这两项以后,在present UIImagePickerController的时候,系统会自动弹窗获取用户许可。
另外,如果直接调用系统默认的相机和照片库,没有进行自定义的话,在用户拒绝提供权限后,相机和照片库界面仍然会打开。但是此时只有取消键是有效的,其它按键点击都没有反应。因此可以保证当用户退出相机和照片库的时候,imagePickerControllerDidCancel的回调方法肯定会被调用到。至于使用自定义界面的,目前尚未测试,尚无法确认。
StackOverflow帖子地址:http://stackoverflow.com/questions/38236723/ios-10-error-access-private-when-using-uiimagepickercontroller/38241350#38241350
PS:感谢google大神和StackOverflow上各位大神!!顺便鄙视下什么都搜不到的百度
UIImagePickerController在ios10环境一打开就crash的问题的更多相关文章
- Mac OS 您需要安装旧 Java SE 6 运行环境才能打开“XXX” 问题
问题描述: 今天在Mac OS上安装一个app的时候提示 “您需要安装旧 Java SE 6 运行环境才能打开 XXX” ,在网上搜索了一下,有说要改app的info.plist文件的,将其中的JVM ...
- 在iPad iOS8环境下打开相冊或者拍照
在iPad下打开相冊或者拍照,假设使用 UIImagePickerController 打开相冊或者拍照,那必需要用到 UIPopoverController 去打开. UIPopoverContro ...
- CentOS桌面环境如何打开终端以及如何将终端加入右键
安装完CentOS的桌面环境后,默认在桌面以及右键是没有打开终端选项的,要想打开终端,可以由以下步骤: 在左上角菜单[Applications]--->[System Tools]---> ...
- iOS10 UIImageWriteToSavedPhotosAlbum程序奔溃crash解决办法
Xcode报错: This app has crashed because it attempted to access privacy-sensitive data without a usage ...
- 零基础 Vue 开发环境搭建 打开运行Vue项目
[相关推荐]IntellIJ IDEA 配置 Vue 支持 打开Vue项目 所需文件 node.js环境(npm包管理器)(node-v8.11.3-x64.msi)(npmV5.6.0) cnpm ...
- thinkPHP5配置nginx环境无法打开(require(): open_basedir restriction in effect. File(/mnt/hgfs/root/tp5/thinkphp/start.php) is not within the allowed path(s)
今天想把玩一下tp5,结果怎么都无法访问,每次都是报500错误,我把错误提示都打开看到下面的错误 require(): open_basedir restriction in effect. File ...
- 枚举当前环境中打开的所有IE
IE程序是属于Shell的一个应用程序,要枚举当前打开的所有IE程序窗口,可以通过ShellWindows集合来打开属于Shell的当前的窗口的集合. 首先添加程序需要的头文件和tlb库 //#imp ...
- Win8环境WPF打开和关闭软键盘
代码如下: public class KeyBoardHelper { #region 键盘控制 /// <summary> /// 显示键盘 /// </summary> p ...
- 关于在eclipse开发环境上打开手机data文件
使用Eclipse开发Android上的数据库应用,需要把数据库文件放到/data/data/mynamespace/database文件夹下,普通手机通过ROOT后经常还是看不到这个文件夹,这时需要 ...
随机推荐
- VFP调用SOAPTOOLKIT 低级API
Connector=CREATEOBJECT("mssoap.HttpConnector")Connector.Property["EndPointURL"] ...
- Cocos学习-----Cocos2Dx安装
昨天晚上从官网下载了cocos2dx,打开发现win下工程已经是2010了最少,很是郁闷.尝试着在08下新建工程然后添加文件,发现还是很麻烦,于是下载了vs2010,打开编译报错:error C206 ...
- Button模板,样式
一.button控件上的模板 <Button Content="Button" Height="25" HorizontalAlignment=" ...
- java写接口
1.先导spring包 2.首先配置spring.xml的监听web.xml配置. <context-param> <param-name>contextConfigLocat ...
- ARM开发板上iconv调用失败的解决方法
当前流行的字符编码格式有:US-ASCII.ISO-8859-1.UTF-8.UTF-16BE.UTF-16LE.UTF-16.GBK.GB2312等,其中GBK.GB2312是专门处理中文编码的.而 ...
- JavaScript prototype 使用介绍
用过JavaScript的同学们肯定都对prototype如雷贯耳,但是这究竟是个什么东西却让初学者莫衷一是,只知道函数都会有一个prototype属性,可以为其添加函数供实例访问,其它的就不清楚了, ...
- 试一下CANVAS
// 此应用源代码如下: document.getElementById("codetext").innerHTML = document.getElementById(" ...
- linux命令(3):pwd命令
Linux中用 pwd 命令来查看”当前工作目录“的完整路径. 简单得说,每当你在终端进行操作时,你都会有一个当前工作目录. 在不太确定当前位置时,就会使用pwd来判定当前目录在文件系统内的确切位置. ...
- JavaScript流程控制语句
一.JavaScript分支语句 -alert() 弹出警告对话框 -prompt() 弹出输入框 1.if(){}else{} 栗子: var num=prompt("请输入电话号码 ...
- 使用CSS3动画库animate.css
IE9及更早版本的IE浏览器都不支持css3动画 谷歌浏览器.火狐浏览器.IE10+浏览器以及移动端浏览器等这些都支持css3动画 animate.css内置了很多典型的css3动画 用法 1 ...