我需要将本地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。有人可以帮忙吗?我显然是斯威夫特的菜鸟。
答案
mainFrame来自WebView类,仅适用于macOS。
由于您使用的是UIWebView,因此需要使用webView.loadRequest。
您的网址也有问题。要么使用URL(fileURLWithPath:)从路径字符串创建URL,或者更好的是,使用Bundle.main.url(forResource:withExtension:)并直接获取URL。
您可能还想使用WKWebView而不是UIWebView。它具有更多功能,可能对您的需求更有用。
另一答案
斯威夫特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)
完成了!