当前位置: 首页 > news >正文

iOS工程:获取手机相册权限,iOS原生系统弹窗, Privacy隐私政策选择,如何添加系统弹出并修改描述文字

【iOS工程】获取手机相册权限,iOS原生系统弹窗, Privacy隐私政策选择,如何添加系统弹出并修改描述文字

设备/引擎:Mac(11.6)/Mac Mini

开发工具:Xcode(15.0.1)

开发需求:获取手机相册权限,iOS原生系统弹窗, Privacy隐私政策选择,如何添加系统弹出并修改描述文字

最近打包上传游戏时被拒,提示请求权限时未说明用途,修改方法也简单,找到之前的描述进行修改即可。

官方文档给出三个权限弹窗示例如下
1.一般是获取位置信息
在这里插入图片描述
2.需要上传图片时
在这里插入图片描述
3.只需要保存图片到相册
在这里插入图片描述

我们只用到了保存图片的功能,所以是第三种情况。

在info.plist中添加隐私政策并添加描述文字,如下图
在这里插入图片描述

这里就是控制弹窗标题下方小字描述的地方,也是我们需要修改的地方,具体文字需要根据项目需求来做。

保存图片并设置一个回调函数处理保存结果
1.UIImageWriteToSavedPhotosAlbum
此方法是iOS 中用于将图片保存到用户的照片库的函数,代码示例

UIImage *image = [UIImage imageNamed:@"你的图片.png"];
UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL);

其中的didFinishSavingWithError就是处理保存结果的回调函数
2.处理保存结果
之前我们用的UIAlertView,但是这个方法在iOS 8 及更高版本中已经弃用,最新的需要用UIAlertController,示例如下

    // 初始化 UIAlertControllerUIAlertController *alertController;// 判断是否有错误,并显示相应的提示信息if (error != NULL) {alertController = [UIAlertController alertControllerWithTitle:@""message:@"Save error. Please check your settings."preferredStyle:UIAlertControllerStyleAlert];} else {alertController = [UIAlertController alertControllerWithTitle:@""message:@"Image saved to your Photos!"preferredStyle:UIAlertControllerStyleAlert];}// 添加“OK”按钮UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"OK"style:UIAlertActionStyleDefaulthandler:nil];// 将“OK”按钮添加到 alertController[alertController addAction:okAction];// 获取根视图控制器并显示 alertControllerUIViewController *rootViewController = [[UIApplication sharedApplication].delegate window].rootViewController;[viewController presentViewController:alertController animated:YES completion:nil];

这样在保存图片后就会出现提示弹窗,提示用户是否保存成功。

PS:如果你的弹窗出现的是ok不是allow,不用担心,可能是地区、语言的不同造成的,而且你也无法修改系统的按钮描述……

希望能给大家带来帮助!!!有什么问题需要讨论的可以评论私信欢迎讨论~

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • -- 数据结构 顺序表 --Java
  • TCP并发服务器多线程和多进程方式以及几种IO模型
  • 【Python】copy()浅拷贝与深拷贝
  • 【牛客_c++_string】HJ1字符串最后一个单词的长度
  • Spring Boot使用拦截器(Interceptor)
  • mysql中group by语句使用
  • 结果一。6.will,begoingto,betodo,beabouttodo结构的区别
  • 在CentOS 7上安装MongoDB的方法
  • ROS imu传感器节点
  • 书生大模型实战营-进阶关卡-6-MindSearch 快速部署
  • 力扣8.27
  • 阿里云对象存储服务(Aliyun OSS):企业级云存储解决方案
  • Spring Boot 集成 JdbcTemplate(盘它!)
  • 敏捷架构开发方法和实践:迎接数字化时代的挑战
  • 东芝玉兔2.0明日震撼开售,洗衣机界的全新革命
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • CSS 三角实现
  • HTTP中GET与POST的区别 99%的错误认识
  • interface和setter,getter
  • laravel 用artisan创建自己的模板
  • mac修复ab及siege安装
  • Mocha测试初探
  • React的组件模式
  • Redux系列x:源码分析
  • Spring Boot快速入门(一):Hello Spring Boot
  • STAR法则
  • use Google search engine
  • Xmanager 远程桌面 CentOS 7
  • 飞驰在Mesos的涡轮引擎上
  • 离散点最小(凸)包围边界查找
  • 你真的知道 == 和 equals 的区别吗?
  • 区块链共识机制优缺点对比都是什么
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 王永庆:技术创新改变教育未来
  • 微信开放平台全网发布【失败】的几点排查方法
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 原生 js 实现移动端 Touch 滑动反弹
  • 积累各种好的链接
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #Datawhale AI夏令营第4期#多模态大模型复盘
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (C语言)fread与fwrite详解
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (二十六)Java 数据结构
  • (规划)24届春招和25届暑假实习路线准备规划
  • (力扣)1314.矩阵区域和
  • (七)c52学习之旅-中断
  • (转)linux 命令大全
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • ***通过什么方式***网吧
  • .DFS.
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .NET国产化改造探索(一)、VMware安装银河麒麟