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

标签 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)
            }
        }
    }

这里有一些图像,其中按钮关闭整个WebView以及如何以不同的方式管理它们?

button that close entire View Another button that close entire View

最佳答案

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

不确定该问题是否适用于所有 iOS 操作系统,但适用于 iOS 12,也许还有 10

关于ios - WkWebView如何管理输入类型文件启动的事件和窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52516714/

相关文章:

css - 我无法在 WebView 上下文中查询

ios - 如何在 SpriteKit 场景编辑器中访问 Navigation Graph 的对象

ios - 从 url 在 ibooks 中打开崩溃

ios - 自定义 TableViewCell 中的标签总是返回它们的初始化值

Collection Controller 与子 Controller 之间的 iOS 通信

android - 在 searchview android 中显示 url

ios - 在 xcode ui 测试执行过程中关闭设备的 wifi

ios - 如何以 Xamarin 形式扫描并连接到 iOS 版蓝牙经典?

ios - 从闭包中返回元组

android - 大 Drawable 屏幕旋转时出现内存不足错误