从 WKWebView 打开照片库或相机?

Posted

技术标签:

【中文标题】从 WKWebView 打开照片库或相机?【英文标题】:Open photos library or camera from WKWebView? 【发布时间】:2019-11-21 06:18:58 【问题描述】:

我有一个包含 WKWebView 的应用程序,并且在 web 视图中,我们具有从照片库附加图像的功能。当从 Safari 或 Chrome 打开页面但在我的应用程序照片选项中未打开时,此操作正常。

我已经搜索了几个答案,但他们告诉我要注入自定义 javascript 来附加监听器。但没有任何效果。

【问题讨论】:

【参考方案1】:

您需要在代码中手动授予应用程序权限。这样你的WKWebView就可以打开相册了。

在 Info.plist 文件中添加以下两个键:

<key>NSPhotoLibraryUsageDescription</key>
<string>Needs permission to select photos</string>
<key>NSCameraUsageDescription</key>
<string>Needs permission to take photos</string>

并添加以下代码以在WKWebView 中加载图像附件功能之前询问照片权限(不要忘记import Photos 框架):

    let status = phphotoLibrary.authorizationStatus()
    if status == .authorized 
        print("already authorized")
     else 
        PHPhotoLibrary.requestAuthorization((_ status: PHAuthorizationStatus) -> Void in
            switch status 
            case .authorized:
                print("Authorized")
            case .denied:
                print("Denied")
            case .notDetermined:
                print("Not determined")
            case .restricted:
                print("Restricted")
            @unknown default:
                print("Unknown")
            
        )
    

【讨论】:

以上是关于从 WKWebView 打开照片库或相机?的主要内容,如果未能解决你的问题,请参考以下文章

在 iPad 上选择照片并从相机拍摄

在 Xcode 中打开 Popover 选项以在 iPad 上选择相机或照片库时出错

权限被拒绝后可以访问照片库和相机

如何在 Swift 中从相机或照片库加载图像 [关闭]

允许用户从相机、照片库或相册中选择图像并遇到我无法解决的错误

如何允许用户从他的相机胶卷或照片库中挑选照片?