【问题标题】:Swift 3 webView local HTMLSwift 3 webView 本地 HTML
【发布时间】:2017-04-27 14:48:43
【问题描述】:

我需要将本地 HTML、CSS 和 JS 加载到 iOS 应用程序中以使我的老板满意。我正在使用 Xcode 8.3.1 和 Swift 3。我创建了一个新项目,并在 Main.storyboard 中放置了一个 WebView

其他 StackOverflow 资源帮助我走到了这一步:

@IBOutlet weak var webView: UIWebView!

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    let urlpath = Bundle.main.path(forResource: "index", ofType: "html");
    let requesturl = URL(string: urlpath!)
    let request = URLRequest(url: requesturl!)
    webView.mainFrame.load(request)
}

我收到此错误:

“UIWebView”类型的值没有成员“mainFrame”

当我删除 mainFrame 时,它说我缺少 mimeType。任何人都可以帮忙吗?我显然是 Swift 的菜鸟。

【问题讨论】:

  • webView.loadRequest(request) 代替?使用func loadRequest(_ request: URLRequest)(文档:developer.apple.com/reference/uikit/uiwebview/…
  • 是的,非常感谢,我该如何投票或发送道具?我已经阅读了 1000 多个问题,但从未发布过一个

标签: ios swift webview uiwebview


【解决方案1】:

mainFrame 来自 WebView 类,该类仅适用于 macOS。

由于您使用的是UIWebView,因此您需要使用webView.loadRequest

您的网址也有问题。使用URL(fileURLWithPath:) 从路径字符串创建URL,或者更好的是,使用Bundle.main.url(forResource:withExtension:) 并直接获取URL

您可能还想使用WKWebView 而不是UIWebView。它具有更多功能,可能对您的需求更有用。

【讨论】:

    【解决方案2】:

    斯威夫特 5

        let path = Bundle.main.path(forResource: "temp", ofType: "html")!
        //reading
        var text = try! String.init(contentsOfFile: path, encoding: String.Encoding.utf8)
        text = text.replacingOccurrences(of: "${contents}", with: contents)
        // load string
        let bundleURL = URL.init(string: path)
        webView.loadHTMLString(text, baseURL: bundleURL)
    

    完成!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-16
      • 2011-05-31
      • 1970-01-01
      • 2015-02-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多