在我的应用程序中,我有一个 WKWebView 加载一个带有文件输入的网站,允许用户通过相机或照片库上传图像。

我的应用程序有相机和照片库的隐私使用说明。

如果用户拒绝访问摄像头,WKWebView 仍将显示通过摄像头上传图像的选项,并显示摄像头模式(尽管它只在您通常会看到摄像头显示图像的位置显示黑色) .如果用户滑动到相机模式中的视频选项,应用程序会崩溃。

相关的堆栈跟踪显示:

3   TCC __TCCAccessRequest_block_invoke_2.80 + 222
4   TCC __CRASHING_DUE_TO_PRIVACY_VIOLATION__ + 682

在这种情况下,是否可以从 native 应用程序端(假设我无法编辑加载的 HTML)来防止 WKWebView 呈现相机模式?

最佳答案

因为你提到了 __CRASHING_DUE_TO_PRIVACY_VIOLATION__ 应用程序可能实际上崩溃了,因为你没有添加使用麦克风的 iOS10 权限描述。如果您选择视频,相机 View 将触发此额外的麦克风权限弹出窗口。在 iOS10 中,您必须填写呈现给用户的描述,否则应用程序将如您所报告的那样崩溃。在 iOS9 中,它只显示通用权限弹出窗口。

尝试在 NSMicrophoneUsageDescription 文件中添加键 Info.plist 的描述。在 Xcode 中,这称为 Privacy - Microphone Usage Description
other answer 将为您提供有关各种隐私 key 及其描述的更多详细信息。

关于ios - 如果用户拒绝访问相机,如何防止 WKWebView 显示相机模式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45514435/

10-14 21:19