在 Swift 2.1.1 和 Xcode 7.1 中
我的代码使用 WKWebView 并从本地文件加载 index.html,但无法加载 index.css 和其他 javascript 文件,如 head 标记中所示。
我最好的猜测是baseURL不正确,如果是这样,我怎样才能正确设置baseURL?谢谢
import UIKit
import WebKit
class ViewController: UIViewController {
@IBOutlet var containerView: UIView! = nil //allows the class to refrence WKWebView
var webView: WKWebView?
override func loadView() {
super.loadView()
self.webView = WKWebView()
self.view = self.webView!
}
override func viewDidLoad() {
super.viewDidLoad()
let HTMLDocumentPath = NSBundle.mainBundle().pathForResource("index", ofType: "html")
let HTMLString: NSString?
do {
HTMLString = try NSString(contentsOfFile: HTMLDocumentPath!, encoding: NSUTF8StringEncoding)
let baseUrl = NSURL.fileURLWithPath("")
webView!.loadHTMLString(HTMLString as! String, baseURL: baseUrl)
} catch {
HTMLString = nil
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
<head>
<meta charset="UTF-8">
<title>RRR</title>
<link rel="stylesheet" href="jquery.mobile-1.4.5.css"/>
<link rel="stylesheet" href="index.css"/>
<script src="jquery-1.11.3.js"></script>
<script src="jquery.mobile-1.4.5.js"></script>
<meta name="viewport" content="width=device-width"/>
</head>
读了一会儿之后here http://www.cs.tut.fi/~jkorpela/fileurl.html关于文件网址我能够解决问题。
这是代码
import UIKit
import WebKit
class ViewController: UIViewController {
@IBOutlet var containerView: UIView! = nil //allows the class to reference WKWebView
var webView: WKWebView?
override func loadView() {
super.loadView()
self.webView = WKWebView()
self.view = self.webView!
}
override func viewDidLoad() {
super.viewDidLoad()
let baseUrl = NSURL(string: "file:///<yourFilePath>/abc/")
let path = NSBundle.mainBundle().pathForResource("abc/index", ofType: "html")
let HTMLString: NSString?
do {
HTMLString = try NSString(contentsOfFile: path!, encoding: NSUTF8StringEncoding)
webView!.loadHTMLString(HTMLString as! String, baseURL: baseUrl )
} catch {
HTMLString = nil
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)