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

news2024/11/15 12:12:21

【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,示例如下

    // 初始化 UIAlertController
    UIAlertController *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:UIAlertActionStyleDefault
                                                     handler:nil];

    // 将“OK”按钮添加到 alertController
    [alertController addAction:okAction];

    // 获取根视图控制器并显示 alertController
     UIViewController *rootViewController = [[UIApplication sharedApplication].delegate window].rootViewController;
    [viewController presentViewController:alertController animated:YES completion:nil];

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2070699.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

maven Tomcat插件安装 运行web项目 (3)

1.maven工程目录结构 main是用来写我们程序 test是用来测试 java是源程序 resource是配置 maven项目构建命令 2.配置maven 创建Maven工程 这里的项目名称可以随便取 进来后改成自己想要的jdk

天津市2024年成人高考报名须知

🚧天津市2024年成人高考报名须知 🌫2024年天津市成人高校招生考试报名。符合天津市报名条件的在职从人员和社会其他人员,可报名参加全国各类成人高等学校招生统一考试。考生须在规定时间完成报名,逾期不再补报。 🌫网上…

微服务事务管理

1.分布式事务问题 1.1.本地事务 本地事务,也就是传统的单机事务,在传统数据库事务中,必须要满⾜四个原则: 1.2.分布式事务 分布式事务,就是指不是在单个服务或单个数据库架构下,产⽣的事务,例…

使用itextpdf5.x将网页转为PDF,并添页眉页脚页码

一、用到的Maven依赖 <dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13.3</version></dependency><!-- 中文字体支持 --><dependency><groupId>com.itextpdf…

Gameplay Ability System(通过表配置不同等级的伤害)

一、创建配置表 1、创建Excel表格&#xff0c;输入数据&#xff0c;表示1级的普攻伤害为5&#xff1b;2级的普攻伤害为15。 2、另存为.csv格式文件。 3、当然也可以通过记事本直接写成下图这样。 二、导入UE5处理 1、导入为CurveTable的稳定格式&#xff0c;命名为CT_MeleeA…

探索厦门凯酷全科技有限公司抖音小店的实用魅力

在数字化浪潮汹涌的今天&#xff0c;电商平台如雨后春笋般涌现&#xff0c;而抖音作为短视频与电商融合的佼佼者&#xff0c;更是为众多企业开辟了新的营销与销售渠道。厦门凯酷全科技有限公司&#xff0c;作为这股潮流中的一股清流&#xff0c;凭借其独特的产品定位与创新的营…

【网络】传输层协议——UDP协议

1.传输层协议 首先我们要明白&#xff0c;进入传输层&#xff0c;也就进入了操作系统内核。 因为应用层下面这几个就是操作系统内部 我们学传输层及其以下几层&#xff0c;也就是在学操作系统内核的网络模块。 1.1.传输层协议 传输层能够实现端到端的连接。比如说我们用QQ与…

嵌入式开发实训室解决方案

随着物联网、智能制造、汽车电子等技术的飞速发展&#xff0c;嵌入式系统作为这些领域的核心技术之一&#xff0c;其重要性日益凸显。为了满足职业院对嵌入式开发人才的需求&#xff0c;构建一个高效、全面的嵌入式开发实训室显得尤为重要。本文旨在提出一套综合性的嵌入式开发…

监控软件可以看到员工在干什么吗?逆天功能!

企业对于工作效率和信息安全重视程度的不断提升&#xff0c;监控软件作为管理工具之一&#xff0c;逐渐在各大公司中普及开来。 这些软件旨在通过监控员工电脑活动、网络通信、甚至物理环境等&#xff0c;来帮助管理者更好地了解员工工作状态&#xff0c;防止数据泄露&#xf…

JVM系列--运行时数据区

Java虚拟机在运行Java程序过程中管理的内存区域&#xff0c;称之为运行时数据区。《Java虚拟机规范》中规定了每一部分的作用。 1 程序计数器 程序计数器&#xff08;Program Counter Register&#xff09;也叫PC寄存器&#xff0c;每个线程会通过程序计数器记录当前要执行的…

基于单片机的教室人数自动统计系统设计

摘 要&#xff1a; 以单片机 AT89C51 为核心&#xff0c;采用光电感应器和单片机系统的技术测量控制装置&#xff0c;同时利用红外装置采集信息&#xff0c;并将信号进行放大形成对应的高电平信号通过LED 显示反馈人数&#xff0c;从而达到管理的目的。文中对基于单片机的教室人…

【SQL】指定日期的产品价格

目录 题目 分析 代码 题目 产品数据表: Products ------------------------ | Column Name | Type | ------------------------ | product_id | int | | new_price | int | | change_date | date | ------------------------ (product_id, chang…

基于cubemx的STM32的freertos的串口通信

1、任务描述 使用freertos系统实现电脑调试助手和正点原子开发板STM32F103ZET6的串口通信。 2、cubemx设置 3、程序代码 &#xff08;1&#xff09;添加usart1.c #include "usart1.h"#include "usart.h"/**********重定义函数**********/struct __FILE …

Chat App 项目之解析(八)

Chat App 项目介绍与解析&#xff08;一&#xff09;-CSDN博客文章浏览阅读340次&#xff0c;点赞7次&#xff0c;收藏3次。Chat App 是一个实时聊天应用程序&#xff0c;旨在为用户提供一个简单、直观的聊天平台。该应用程序不仅支持普通用户的注册和登录&#xff0c;还提供了…

ArcGIS高/低聚类(Getis-Ord General G)——探究人口空间格局的20年变迁

先了解什么是高/低聚类&#xff1f; 高/低聚类 (Getis-Ord General G) 统计是一种用于检测空间数据中是否存在高值或低值聚类的统计方法&#xff0c;这种方法可以帮助我们理解数据点在空间上是否呈现某种聚集模式。 白话版&#xff1a;一句话就是判断数据在空间上有没有聚集。…

芯片后端之 PT 使用 report_timing 产生报告 之 -include_hierarchical_pins 选项

今天,我们再学习一点点 后仿真相关技能。 那就是,了解 report_timing 中的 -include_hierarchical_pins 选项。 如果我们仅仅使用如下命令,执行后会发现: pt_shell> report_timing -from FF1/CK -to FF2/d -delay_type max 我们使用命令 report_timing 报出的如上路…

基于Java语言的能源管理系统-水-电-气-热-油-数据采集系统源码

基于Java语言的能源管理系统-水电气热油数据采集系统源码 介绍 能源管理系统能源管理能源管理平台能源管理系统&#xff08;EMS&#xff09;能源监测能源管控能源系统能源监控能源预测&#xff0c;适用于高能耗企业能源企业 软件架构 软件功能 数据大屏 使用说明 参与贡献 …

【计算机三级-数据库技术】操作题大题(第八套)

第46题 &#xff08;1&#xff09; 1 (2) create table ( a1 int, a6 int, a10 int, Primary Key(a1, a6), Constraint fk_PerOrders Foreign Key (a1) References T1(a1), Constraint fk_PerOrders Foreign Key (a6) References T3(a6) ) 第47题 答案&#xff1a; [1]Pro…

Java语言程序设计——篇十七(3)

&#x1f33f;&#x1f33f;&#x1f33f;跟随博主脚步&#xff0c;从这里开始→博主主页&#x1f33f;&#x1f33f;&#x1f33f; 欢迎大家&#xff1a;这里是我的学习笔记、总结知识的地方&#xff0c;喜欢的话请三连&#xff0c;有问题可以私信&#x1f333;&#x1f333;&…

聊聊最近大火的《黑神话·悟空》这款游戏

《黑神话悟空》游戏突然成为是一款备受瞩目的游戏&#xff0c;以下是对该游戏的详细介绍&#xff1a; 一、游戏基本信息 开发团队&#xff1a;游戏科学 游戏类型&#xff1a;动作角色扮演游戏&#xff08;ARPG&#xff09;背景设定&#xff1a;以中国四大名著之一《西游记》…