电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOCX文档下载
分享到微信 分享到微博 分享到QQ空间

iOS适配及部分解决

  • 资源ID:265413432       资源大小:855.90KB        全文页数:8页
  • 资源格式: DOCX        下载积分:15金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要15金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

iOS适配及部分解决

       iOS14适配及部分解决方案                     本文是从简书网上复制而来,因本人参考的简书上一个不错的iOS 14适配博文打不开了,所以防止内容找不到在此复制一份。在6月份刚结束的首次线上 WWDC 2020 发布会上苹果向我们展示了新的 iOS14 系统。iOS14 的适配,很重要的一环就集中在用户隐私和安全方面。在 iOS13 及以前,当用户首次访问应用程序时,会被要求开放大量权限,比如相册、定位、联系人,实际上该应用可能仅仅需要一个选择图片功能,却被要求开放整个照片库的权限,这确实是不合理的。对于相册,在 iOS14 中引入了 “LimitedPhotos Library” 的概念,用户可以授予应用访问其一部分的照片,对于应用来说,仅能读取到用户选择让应用来读取的照片,让我们看到了 Apple 对于用户隐私的尊重。这仅仅是一部分,在iOS14 中,可以看到诸多类似的保护用户隐私的措施,也需要我们升级适配。本文主要分享一下 iOS14 上对于隐私授权的变更和部分适配方案,欢迎补充指正。适配点 相册 iOS14 新增了“Limited Photo Library Access” 模式,在授权弹窗中增加了 Select Photo 选项。用户可以在 App 请求调用相册时选择部分照片让 App 读取。从 App 的视来看,你的相册里就只有这几张照片,App 无法得知其它照片的存在。 iOS14 中当用户选择“PHAuthorizationStatusLimited” 时,如果未进行适配,有可能会在每次触发相册功能时都进行弹窗询问用户是否需要修改照片权限。 对于这种情况可通过在 Info.plist 中设置“PHPhotoLibraryPreventAutomaticLimitedAccessAlert”的值为 YES 来阻止该弹窗反复弹出,并且可通过下面这个 API 来主动控制何时弹出PHPickerViewController 进行照片选择PHPhotoLibrary sharedPhotoLibrary presentLimitedLibraryPickerFromViewController:self; 在 iOS14 中官方推荐使用 PHPicker 来替代原 API 进行图片选择。PHPicker 为独立进程,会在视图最顶层进行展示,应用内无法对其进行截图也无法直接访问到其内的数据。· UIImagePickerController -> PHPickerViewController, UIImagePickerViewController 功能受限,每次只能选择一张图片,将逐渐被废弃。· PHPicker 支持多选,支持搜索,支持按 image,video,livePhotos 等进行选择。 新API及迁移demo:interface ViewController () <PHPickerViewControllerDelegate> property (weak, nonatomic) IBOutlet UIImageView *imageView; property (nonatomic, strong) NSArray<NSItemProvider *> *itemProviders; end implementation ViewController - (void)viewDidLoad super viewDidLoad; / Do any additional setup after loading the view. - (IBAction)button:(id)sender / 以下 API 仅为 iOS14 only PHPickerConfiguration *configuration = PHPickerConfiguration alloc init; configuration.filter = PHPickerFilter videosFilter; / 可配置查询用户相册中文件的类型,支持三种 configuration.selectionLimit = 0; / 默认为1,为0时表示可多选。 PHPickerViewController *picker = PHPickerViewController alloc initWithConfiguration:configuration; picker.delegate = self; / picker vc,在选完图片后需要在回调中手动 dismiss self presentViewController:picker animated:YES completion: ; #pragma mark - Delegate - (void)picker:(PHPickerViewController *)picker didFinishPicking:(NSArray<PHPickerResult *> *)results picker dismissViewControllerAnimated:YES completion:nil; if (!results | !results.count) return; NSItemProvider *itemProvider = results.firstObject.itemProvider; if (itemProvider canLoadObjectOfClass:UIImage.class) _weak typeof(self) weakSelf = self; itemProvider loadObjectOfClass:UIImage.class completionHandler:(_kindof id<NSItemProviderReading> _Nullable object, NSError * _Nullable error) if (object isKindOfClass:UIImage.class) _strong typeof(self) strongSelf = weakSelf; dispatch_async(dispatch_get_main_queue(), strongSelf.imageView.image = (UIImage *)object; ); ; 需要注意的是,在 limit Photo 模式下,AssetsLibrary 访问相册会失败;在 writeOnly 模式下,AssetLibrary 也会有显示问题。建议还在使用 AssetsLibrary 的同学尽快迁移到新 API。 授权相关:旧 API 废弃,增加 PHAccessLevel 参数。如果再使用以前的API来获取权限状态,PHAuthorizationStatusLimited 状态下也会返回PHAuthorizationStatusAuthorizedtypedef NS_ENUM(NSInteger, PHAccessLevel) PHAccessLevelAddOnly = 1, / 仅允许添加照片 PHAccessLevelReadWrite = 2, / 允许访问照片,limitedLevel 必须为 readWrite API_AVAILABLE(macos(10.16), ios(14), tvos(14); / 查询权限 PHAccessLevel level = PHAccessLevelReadWrite; PHAuthorizationStatus status = PHPhotoLibrary authorizationStatusForAccessLevel:level; switch (status) case PHAuthorizationStatusLimited: NSLog("limited"); break; case PHAuthorizationStatusDenied: NSLog("denied"); break; case PHAuthorizationStatusAuthorized: NSLog("authorized"); break; default: break; / 请求权限,需注意 limited 权限尽在 accessLevel 为 readAndWrite 时生效 PHPhotoLibrary requestAuthorizationForAccessLevel:level handler:(PHAuthorizationStatus status) switch (status) case PHAuthorizationStatusLimited: NSLog("limited"); break; case PHAuthorizationStatusDenied: NSLog("denied"); break; case PHAuthorizationStatusAuthorized: NSLog("authorized"); break; default: break; ; 定位 在 iOS13 及以前,App 请求用户定位授权时为如下形态:一旦用户同意应用获取定位信息,当前应用就可以获取到用户的精确定位。 iOS14 新增用户大致位置选项可供用户选择,原因是大多数 App 实际上并不需要获取用户到用户最准确的定位信息。iOS14 授权弹窗新增的 Precise的开关默认会选中精确位置。用户通过这个开关可以进行更改,当把这个值设为 On 时,地图上会显示精确位置;切换为Off时,将显示用户的大致位置。 对于对用户位置敏感度不高的 App 来说,这个似乎无影响,但是对于强依赖精确位置的 App 适配工作就显得非常重要了。可以通过用户在 “隐私设置” 中设置来开启精确定位,但是可能用户宁可放弃使用这个应用也不愿意开启。这个时候,iOS14 在 CLLocationManager 新增两个方法可用于向用户申请临时开启一次精确位置权限。使用方式也很简单,需要首先在 Info.plist 中配置“NSLocationTemporaryUsageDescriptionDictionary”字典中需要配置 key 和 value 表明使用位置的原因,以及具体的描述。在本例中,key 即为获取用户权限时传的 "purposeKey",最终呈现给用户的就是左图,右图为当App主动关闭精确定位权限申请。 对于地理位置不敏感的App 来说,iOS14 也可以通过直接在 info.plist 中添加 NSLocationDefaultAccuracyReduced 为 true 默认请求大概位置。 这样设置之后,即使用户想要为该 App 开启精确定位权限,也无法开启。 也可以直接通过API来根据不同的需求设置不同的定位精确度。 需要注意的是,当 App 在 Background 模式下,如果并未获得精确位置授权,那么 Beacon 及其他位置敏感功能都将受到限制。 IDFA IDFA 全称为 Identity for Advertisers ,即广告标识符。用来标记用户,目前最广泛的用途是用于投放广告、个性化推荐等。 在 iOS13 及以前,系统会默认为用户开启允许追踪设置,我们可以简单的通过代码来获取

注意事项

本文(iOS适配及部分解决)为本站会员(Baige****0346)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.