如果用户拒绝访问相机,如何防止 WKWebView 显示相机模式?

mpa*_*zer 6 iphone camera ios wkwebview ios10

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

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

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

相关堆栈跟踪显示:

3   TCC __TCCAccessRequest_block_invoke_2.80 + 222
4   TCC __CRASHING_DUE_TO_PRIVACY_VIOLATION__ + 682
Run Code Online (Sandbox Code Playgroud)

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

小智 2

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

NSMicrophoneUsageDescription尝试在文件中添加密钥的描述Info.plist。在 Xcode 中这被称为Privacy - Microphone Usage Description

这个其他答案将为您提供各种隐私密钥及其描述的更多详细信息。