WKWebView ImagePicker 捕捉iOS选择图片事件

Zin*_*tem 1 uiimagepickercontroller ios wkwebview

我正在使用 WKWebView,我正在点击“加载文件”。WKWebView 为我打开 UIImagePickerView,在此期间我需要知道 - 选择了什么图像。

Zin*_*tem 5

为我工作。

override func present(_ viewControllerToPresent: UIViewController, animated flag: Bool, completion: (() -> Void)? = nil) {
    if let imagePicker = viewControllerToPresent as? UIImagePickerController {
        previousIPDelegate = imagePicker.delegate
        imagePickerController = imagePicker
        imagePickerController?.delegate = self
    }

    super.present(viewControllerToPresent, animated: flag, completion: completion)
}
Run Code Online (Sandbox Code Playgroud)

在此之后 - 您将能够使用 didFinishPickingMediaWithInfo func,您可以在其中捕获和使用所选媒体,应将旧委托返回给 imagePicker 并在旧委托中调用 didFinishPickingMediaWithInfo func

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    var newInfo = info
    if let pickedImage = newInfo[UIImagePickerControllerOriginalImage] as? UIImage {
        /// DO YOUR STUFF HERE
    }

    picker.delegate = previousIPDelegate
    previousIPDelegate?.imagePickerController!(picker, didFinishPickingMediaWithInfo: newInfo)
}
Run Code Online (Sandbox Code Playgroud)

你应该在 DidCancel func 中做同样的事情

func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
    picker.delegate = previousIPDelegate
    previousIPDelegate?.imagePickerControllerDidCancel!(picker)
}
Run Code Online (Sandbox Code Playgroud)