11import Foundation
22import UIKit
3+ import WebKit
34import Capacitor
45import AVFoundation
5- import MobileCoreServices
6+ import UniformTypeIdentifiers
67
78typealias CapacitorNotifyListeners = ( _ eventName: String , _ data: [ String : Any ? ] ? ) -> Void
89
@@ -14,7 +15,7 @@ enum CaptureQuality {
1415
1516 let notifyListeners : CapacitorNotifyListeners
1617
17- var webView : UIView
18+ var webView : WKWebView
1819 var parentView : UIView
1920 var settings : CameraSettings
2021 // Camera Preview state
@@ -43,7 +44,7 @@ enum CaptureQuality {
4344
4445 var captureQuality = CaptureQuality . hq
4546
46- init ( webView: UIView , parentView: UIView , settings: CameraSettings , notifyListeners: @escaping CapacitorNotifyListeners ) {
47+ init ( webView: WKWebView , parentView: UIView , settings: CameraSettings , notifyListeners: @escaping CapacitorNotifyListeners ) {
4748 self . webView = webView
4849 self . parentView = parentView
4950 self . settings = settings
@@ -416,16 +417,17 @@ enum CaptureQuality {
416417 }
417418
418419 public func saveFileToUserDevice( _ filePath: String ) {
419- guard let fileExtension = URL ( fileURLWithPath: filePath) . pathExtension as CFString ? ,
420- let fileType = UTTypeCreatePreferredIdentifierForTag ( kUTTagClassFilenameExtension, fileExtension, nil ) ? . takeRetainedValue ( ) else {
420+ let fileExtension = URL ( fileURLWithPath: filePath) . pathExtension
421+ guard !fileExtension. isEmpty,
422+ let fileType = UTType ( filenameExtension: fileExtension) else {
421423 print ( " Unable to determine file type. " )
422424 return
423425 }
424426 // Remove `file://` prefix if any
425427 let filePathClean = filePath. replacingOccurrences ( of: " file:// " , with: " " )
426- if UTTypeConformsTo ( fileType, kUTTypeImage ) {
428+ if fileType. conforms ( to : . image ) {
427429 saveImageToPhotoAlbum ( filePathClean)
428- } else if UTTypeConformsTo ( fileType, kUTTypeMovie ) {
430+ } else if fileType. conforms ( to : . movie ) {
429431 saveVideoToPhotoAlbum ( videoPath: filePathClean)
430432 } else {
431433 print ( " File type is neither image nor video. " )
0 commit comments