在 iOS 10.0 之后, App 要调用手机相机与相簿应注意的事项
iOS 的 SDK 每一年至少都会有一次大改版,从 2009 到 2016 年,版号已经到了第 10 版了,很轻易的就追上了 Mac OSX. 每一次的大改版都会有不少新的功能或新的规范,在 iOS 7的改版算的上是幅度最大的,把 iOS 1.0 到 iOS 6.0 以实物视觉与立体视觉的基础来了个发夹弯,转向去跟 Android, Windows 一起走平面化极简风。(不知道乔布斯天上有灵会怎么反应......)
• iOS 8的改版中,要求使用地理资讯的App需要在 info.plist 当中自己写出提示的文字
• iOS 10 的改版中,更进一步要求使用相机、相簿的App也要自己提示。
如果没有在 info.plist 里面定义提示文字,App执行到该功能的时候,会直接发生闪退,这对于使用者来说很不方便,所以App开发的人员也只好为了使用者对 App 进行改版。
如果是使用 Xcode 来开发,就需要编辑 info.plist, 加入以下图片中两个灰色背景的设定,一个是使用相机,另一个是使用相簿。
这跟是否使用第三方的 Framework 无关喔,即使您使用了 Cocos2D, 或是 CocoaPad, 这些宣告也是跑不掉的。
如果使用的是 Delphi,则需要从专案设定选项 (Project Option)来设定,设定视窗如下图所示:
叫出这个视窗的方法有两个,一个是从Delphi的视窗中点选 Project 选项,选择里面的 Option。另一个则是用滑鼠右键点选视窗右边的专案名称,选择 Menu 里面的 Option 选项,都可以显示出这个视窗。
设定好这两个选项之后,在 Delphi 里面呼叫 TTakePhotoFromCameraAction 或
TTakePhotoFromLibraryAction的时候,就不会闪退了.
要留意一点,透过 Delphi 取用相机或相簿的时候,OnDidFinishTaking 所取得的照片是 TBitMap 元件,我们可以先对图片做一些简单的处理,例如可以把图片的 解析度弄小一点,或者改变图片的大小,甚至是储存成不同格式 (PNG或JPG)。
对 iOS 模拟器处理时,由于模拟器通常没有相机,所以不用特别设定模拟器的相机使用描述。Delphi 的设定会依照不同的装置平台做个别的设定,而且还分成 Debug/Release,所以我自己通常会直接编辑 All Configuration。
从 iOS 5S 之后,也已经没有 32 bit 的新装置了,所以如果您的 App 不打算提供给 32 bit 装置使用的话,iOS Device - 32 bit platform 也可以不用理他了。
在 iOS 10.0 之后, App 要调用手机相机与相簿应注意的事项的更多相关文章
- iOS 10.0 更新点(开发者视角)
html, body {overflow-x: initial !important;}html { font-size: 14px; } body { margin: 0px; padding: 0 ...
- iOS 10.0之前和之后的Local Notification有神马不同
在iOS 10.0之前apple还没有将通知功能单独拿出来自成一系.而从10.0开始原来的本地通知仍然可用,只是被标记为过时.于是乎我们可以使用10.0全新的通知功能.别急-让我们慢慢来,先从iOS ...
- iOS 10.0前的Notification推送
前言 推送为远程推送,一般由苹果APNS服务器发送给苹果设备(iPhone,iPad) 推送分在前台和后台.在前台时 用户可以在application 的代理回调接口中做相应处理:在后台时 系统会全权 ...
- iOS 10 创建iMessage App
原文作者 澳大利亚19岁少年--Davis Allie ----原文地址 时值中秋佳节, 送给出门在外的程序猿们 ! 骚年们, 自己写个表情包斗图可否 ! 斗-seal.svg.png 第一. 介绍 ...
- iOS 10.0适配之旅
1.升级Xcode体验 升级到Xcode之后,调试程序好多东西都不是太适应 控制台莫名给你打印一堆不是太好理解的东西 之前使用 Alcatraz 下载的插件都不能用(如何使用Alcatraz) 打开麦 ...
- 关于iOS10 Xcode8真机测试项目出现的问题 "code signing is required for product type 'xxxxx' in SDK 'iOS 10.0"..
昨天用真机测试项目出现这样的错误,在网上搜集了一些信息,所以将自己的经验分享出来帮助更多的人. 第一步: 检查你的1和2是否填写正确,如果你是运行别人的项目,BundleIdentifier要和你的X ...
- 使用DbVisualizer 10.0.20 查询ES中的索引时需要注意的事项
查询前5条数据 光标停在某一个查询结果框中,左下角会显示该字段的类型 查询类型是text的字段使用单引号,使用双引号查询会报错
- iOS 10跳转到其他app
- (BOOL)jumpsToThirdAPP:(NSString *)urlStr{ if ([urlStr hasPrefix:@"mqq"] || [urlStr hasPr ...
- [转载]iOS 10 UserNotifications 框架解析
活久见的重构 - iOS 10 UserNotifications 框架解析 TL;DR iOS 10 中以前杂乱的和通知相关的 API 都被统一了,现在开发者可以使用独立的 UserNotifica ...
随机推荐
- 简单的叙述下SQL中行列转换的小知识!
行列转换对于工作还是学习中总是不可避免的会遇到(虽然本人还尚未工作,萌萌哒的学生一枚),解决的方法也有很多,我这里就总结一下我所想解决的问题以及怎么去解决的方法, 可能网上已经有很多类似的方法了,有的 ...
- 在Windows下安装redis扩展和memcached扩展
一.php安装redis扩展 1.使用phpinfo()函数查看PHP的版本信息,这会决定扩展文件版本 2.根据PHP版本号,编译器版本号和CPU架构, 选择php_redis-2.2 ...
- c++内存优化:二级间接索引模式内存池
/********************************************************* 在一些不确定内存总占用量的情形下,频繁的使用new申请内存,再通过链表 进行索引似 ...
- 六行python代码的爱心曲线
前些日子在做绩效体系的时候,遇到了一件囧事,居然忘记怎样在Excel上拟合正态分布了,尽管在第二天重新拾起了Excel中那几个常见的函数和图像的做法,还是十分的惭愧.实际上,当时有效偏颇了,忽略了问题 ...
- 1px 究竟是多大
一.引言 1px 究竟是多大?这应该是一道很不错的面试题.且看: 1.iphone6s 的分辨率是1920px * 1080px 2.iphone6s 全屏截图文件的尺寸是1242px * 2208p ...
- 36.java_exception_test
package mytext1; class TZException extends Exception{ TZException(String str){ super(str); } public ...
- Spring+Redis(keyspace notification)实现定时任务(订单过期自动关闭)
1.起因 最近公司项目要做订单超期未支付需自动关闭,首先想到的是用spring的定时器(@Schedule),结果领导举各种例子说会影响性能,只能作罢.后来想能不能基于redis实现, 学习(baid ...
- sql中常见日期获取
获取当前年月日 --获取当前月份 ,GETDATE())) --获取当前月份的下个月 ,GETDATE())) --获取当前月份的上个月 year()获取年 select year(GETDATE() ...
- 怎么看iOS human interface guidelines中的user control原则
最近离开了老东家,整理整理思路,因为一直做的是微信公众号相关的产品对app的东西有一段时间没有做过了,所以又看了一遍iOS human interface guidelines,看到user cont ...
- netty——私有协议栈开发案例
netty--私有协议栈开发案例 摘要: 在学习李林峰老师的Netty权威指南中,觉得第十二章<私有协议栈开发>中的案例代码比较有代表性,讲的也不错,但是代码中个人认为有些简单的错误,个人 ...