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

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

  1. 我希望用户不能以任何方式与显示的页面进行交互。因此,例如,如果有一个链接,则用户无法单击该链接。页面的任何其他元素也是如此,例如图像等。有没有办法做到这一点?在实践中,网站内容需要像内容图片一样提供,不能与页面的各个元素进行交互。
  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
    }
}

【问题讨论】:

    标签: ios swift iphone webview webkit


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-17
      • 1970-01-01
      • 2015-01-19
      • 1970-01-01
      • 2021-07-17
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多