从 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 打开照片库或相机?的主要内容,如果未能解决你的问题,请参考以下文章