如何在 Swift iOS 中使 web 视图不可点击

Posted

技术标签:

【中文标题】如何在 Swift iOS 中使 web 视图不可点击【英文标题】:How to make a webview NOT clickable in Swift iOS 【发布时间】:2021-02-18 17:21:37 【问题描述】:

我想在 Swift 中为一个我只想显示给定网站内容的 ios 应用程序实现一个 webview。下面的实现有效,但我有 2 个要求我不知道如何实现:

    我希望用户不能以任何方式与显示的页面进行交互。因此,例如,如果有一个链接,则用户无法单击该链接。页面的任何其他元素也是如此,例如图像等。有没有办法做到这一点?在实践中,网站内容需要像内容图片一样提供,不能与页面的各个元素进行交互。 我希望网站的地址永远不会对用户可见。在我下面的实现中,情况似乎是这样,但我不确定这是否会在任何情况下工作,以及是否有更安全的方法来确保永远不会向用户显示网址(即使例如 iOS 通知用户在加载页面时遇到问题等)。

我在 ViewController.swift 中的内容如下:

import UIKit
import WebKit

class ViewController: UIViewController, WKNavigationDelegate 
    
    var webView: WKWebView!
    
    override func loadView() 
            webView = WKWebView()
            webView.navigationDelegate = self
            view = webView
        

    override func viewDidLoad() 
        super.viewDidLoad()
       
        let url = URL(string: "my-website-here")!
        webView.load(URLRequest(url: url))
        webView.allowsBackForwardNavigationGestures = true
    

【问题讨论】:

【参考方案1】:

在函数override func viewDidLoad()的右括号之后尝试实现这个

 func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) 
 decisionHandler(.cancel)

也在webView.load(URLRequest(url: url))下面

添加

navigationController?.isToolbarHidden = true
        navigationController?.isNavigationBarHidden = true

【讨论】:

以上是关于如何在 Swift iOS 中使 web 视图不可点击的主要内容,如果未能解决你的问题,请参考以下文章

如何在swift 4中使图像视图变圆

如何在swift中使背景视图透明但图像不透明[关闭]

如何在 swift 中使文本字段功能在 tableview 中

ios - 如何在 Web 视图中使用 javascript 打开 swift 视图?

如何在iOS中使子视图成为圆角作为超级视图?

在 Swift 中使 NavigationBar 子视图可点击