请求访问照片库提示停留在后台

Posted

技术标签:

【中文标题】请求访问照片库提示停留在后台【英文标题】:Request for access to photo library prompt stays in the background 【发布时间】:2019-02-14 18:27:00 【问题描述】:

我的要求照片库权限提示应该会在应用程序启动后立即弹出。我已经使用library permission 设置了我的 info.plist。 我已经尝试在各种生命周期函数中添加/删除 AppDelegate.swift 中的 requestAuthorization(_:) 函数。

当前输出:应用启动并停留在启动屏幕上。当我单击主页按钮时,应用程序最小化并出现权限提示(好像它在后台徘徊)。在允许许可后,一切都会按预期启动。

所需的输出:应用程序启动并且照片库权限提示出现在顶部(应该如此)。点击后一切照常运行。

如果描述性不够,我可以附上图片。也没有相关代码,因为我删除了requestAuthorization(_:) 函数(因为不需要)。任何提示都会有很长的路要走,因为我几天来一直在摆弄这个,试图解决这个问题。谢谢!

【问题讨论】:

这不是 ios 中的默认行为。操作系统将弹出 - 仅一次 - 您尝试访问照片库时请求权限,而不是之前。即使你设法找到了一种不同的方法来做到这一点——Apple 也批准了它——为什么要对你的应用做一些出乎意料的事情呢?从使用的角度来看,这似乎是灾难的秘诀。 是的,我正在应用提示仅出现一次的默认行为,但在后台@dfd。书上没有任何内容 好的,但正如所指出的,您是在后台进行的。把它分解成小块...从一个 basic 项目开始,它在视图控制器中显示一个简单的警报。 (是的,基本的。)现在开始自定义它...你能在AppDelegate 中展示它吗?在后台怎么样?如果是,那么回到基础并使其成为隐私弹出窗口......你可以让它在 a UIImagePickerController 中工作吗?你的怎么样,假设你可能正在使用别的东西。在viewDidLoad 怎么样?在那里的某个地方,您会发现操作系统没有按照您想要的方式运行。 @dfd 所以我尝试了很多东西,把它分解成裸露的骨头。结果是,当我在照片库视图控制器之前设置一个根视图控制器时,当导航到它时,提示会按预期在顶部弹出。但是当照片库视图控制器保留为根视图控制器时,提示不会显示在顶部:\ 听起来这是一个“很好的练习”,但效果并不理想。听起来您也正在反对 iOS 行为。希望您能找到一种“最佳案例”方式来做您想做的事。 【参考方案1】:

您的请求调用应该在视图控制器中(即 viewDidAppear),而不是 AppDelegate。在应用委托中调用可能会导致它在不适当的时间触发。

【讨论】:

是的,但不需要请求调用,因为我在 info.plist 文件中添加了隐私密钥。所以我从代码中删除了 requestAuthCall

以上是关于请求访问照片库提示停留在后台的主要内容,如果未能解决你的问题,请参考以下文章

在应用启动期间请求访问照片库

我无需请求许可即可访问 iOS 照片库

如何在 iOS5 中重新请求照片访问权限?

如何使用 ALAssetsLibrary 访问照片而不在 iOS5 中请求位置访问?

使用 Facebook php sdk 访问相册/照片时,“请求此资源需要访问令牌”

网页报404错误提示