WkWebView如何管理输入类型文件启动的事件和窗口

时间:2018-09-26 11:30:19

标签: ios swift webview

这是我在iOS上的第一个应用程序,我在Android上也使用了相同的应用程序,而没有任何问题,现在我陷入了这个问题。

当用户单击“选择文件”进入Webview时,手机会问我要在哪里选择照片(或文件),如果我选择“关闭”,则整个WebView都会关闭! 我该如何管理这些事件? (下图显示了让我遇到这个问题的窗户) 如果我单击加载的附件会出现同样的问题,则会出现一个窗口,向我显示图像,如果我长按该图像,则会出现一些按钮(复制,下载或关闭)...。如果我按下其中一个,则WebView将关闭。 ..

后退按钮被禁用,因为在这种情况下,用户无法使用后退按钮,必须遵循webview强制的工作流程。

我尝试使用此代码,但仍然关闭了webview

import UIKit
import WebKit

class MyWebViewController: UIViewController, WKUIDelegate, WKNavigationDelegate {

    //Variable used for take received data from other ViewControllers
    var urlString = String()
    var callerString = String()

    // MARK: - Properties
    @IBOutlet weak var myWebView: WKWebView!
    @IBOutlet weak var backButton: UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()

        if callerString == "CodeController"{
            backButton.isEnabled = false
        } else {
            backButton.isEnabled = true
        }

        myWebView.navigationDelegate = self
        view.addSubview(myWebView)

        // Do any additional setup after loading the view.
        let url = URL(string: urlString)
        myWebView.load(URLRequest(url : url!))

    }

    @IBAction func backButtonAction(_ sender: Any) {
        if callerString != "CodeController"{
            if myWebView.canGoBack{
                myWebView.goBack()
            }else {
                //Go to Main View
                self.navigationController?.popViewController(animated: true)
                self.performSegue(withIdentifier: "backOnViewControllerSegue", sender: self)
            }
        }
    }

这里有imagesbuttons关闭了整个WebView,以及如何以不同的方式管理它们?

button that close entire View Another button that close entire View

1 个答案:

答案 0 :(得分:0)

这是WkWebView库中的错误。 为避免这种情况,只需将OSX和XCODE升级到最新版本即可解决问题。

不确定是否适用于所有iOS操作系统,但不确定适用于iOS 12,甚至是10