在 SFSafariViewController 中提示相机和照片库权限

Posted

技术标签:

【中文标题】在 SFSafariViewController 中提示相机和照片库权限【英文标题】:Prompt Camera and Photo Library permisions inside SFSafariViewController 【发布时间】:2020-03-31 19:31:57 【问题描述】:

我正在使用SFSafariViewController 访问具有图片上传按钮的网站。当用户触摸它时,它会显示在 ios 13 中运行良好的库/相机选项。

我没有在我的 Info.plist 中添加相机和照片库使用说明,但显然它不需要它来工作。

我的问题是 Apple App Review 拒绝了我的应用,并声明:

您的应用从设备访问用户数据,但没有采取必要的预防措施。

具体来说,您的应用无需征求用户许可即可访问设备的摄像头。

我不确定如何解决这个问题,因为即使我可以添加使用说明,我相信 SFSafariViewController 也没有为我提供一个委托,使我能够在用户触摸一个按钮时请求特定权限网站。

【问题讨论】:

【参考方案1】:

Apple App Review 强制所有应用请求许可。即使您的库不需要它或有特定的委托,您仍然需要添加静态消息以在系统使用摄像头或麦克风时显示给用户。 我相信最好的解决方案是确保您的 ios > Runner > Info.plist 中有以下内容:

<key>NSCameraUsageDescription</key>
<string>Need to upload image</string>

<key>NSMicrophoneUsageDescription</key>
<string>Need to upload image</string>

https://developer.apple.com/documentation/avfoundation/cameras_and_media_capture/requesting_authorization_for_media_capture_on_ios

【讨论】:

我认为您的意思是 NSPhotoLibraryUsageDescription 而不是 NSMicrophoneUsageDescription。我刚刚尝试添加它,但我想知道如何/何时触发显示这些描述的消息。在我看来,当触摸上传图片按钮时应该触发它们,但是如果 SFSafariViewController 没有为该操作提供委托,我将无法在正确的时间呈现消息。 这个链接会有帮助吗? ***.com/questions/33930409/… 我已经看到了这个问题,但这听起来像是一个不同的问题,因为相机/库在我的情况下工作正常。我面临的唯一问题是 App Review。

以上是关于在 SFSafariViewController 中提示相机和照片库权限的主要内容,如果未能解决你的问题,请参考以下文章

FBSDK 登录 - SFSafariViewController 已禁用?

SFSafariViewController 详细信息

是否可以在 UITabBarController 内显示 SFSafariViewController?

在 SFSafariViewController 上设置完成按钮颜色

在 SFSafariViewController 中嵌入 Javascript

Android 相当于 iOS 的 SFSafariViewController