如何在 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 中使文本字段功能在 tableview 中