Ios 从应用程序加载本地html文件';s文档目录swift wkwebview
我正在尝试加载一个本地html文件,该文件通过wkwebview下载到我的应用程序中。除了这个html文件,我正在下载两个js文件,它们在html文件中被引用 但无论我做什么,它们都不会加载到wkwebview中Ios 从应用程序加载本地html文件';s文档目录swift wkwebview,ios,swift,wkwebview,Ios,Swift,Wkwebview,我正在尝试加载一个本地html文件,该文件通过wkwebview下载到我的应用程序中。除了这个html文件,我正在下载两个js文件,它们在html文件中被引用 但无论我做什么,它们都不会加载到wkwebview中 @IBOutlet var webView: WKWebView! @IBOutlet var act: UIActivityIndicatorView! override func viewDidLoad() { super.viewDidLoad(
@IBOutlet var webView: WKWebView!
@IBOutlet var act: UIActivityIndicatorView!
override func viewDidLoad() {
super.viewDidLoad()
// Adding webView content
webView.uiDelegate = self
webView.navigationDelegate = self
let fm = FileManager.default
let docsurl = try! fm.url(for:.documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
let myurl = docsurl.appendingPathComponent("index.html")
print("my url = ",myurl )
// myurl prints file///var/some directories/index.html
let request = URLRequest(url: myurl!)
webView.load(request)
}
我的html文件
<!DOCTYPE html>
<html>
<head>
<script src="jquery.min.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
$("p").hide();
});
});
</script>
</head>
<body>
<h2>This is a heading</h2>
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>
<button>Click me</button>
</body>
</html>
$(文档).ready(函数(){
$(“按钮”)。单击(函数(){
$(“p”).hide();
});
});
这是一个标题
这是一段
这是另一段
点击我
但是它没有从safari(develope/)加载到屏幕上。我可以看到,
加载资源时出现了一个错误,,页面显示为:blankswift 4.2
//load HTML
let bundle = Bundle.main
var path = bundle.path(forResource: "index", ofType: "html")
var html = ""
do {
try html = String(contentsOfFile: path!, encoding: .utf8)
} catch {
//ERROR
}
let urlstr = "http://website.com"
webViewWK.loadHTMLString(html, baseURL: URL(string: urlstr)!)
URLRequest
基本上是为实时url创建的。对于系统文件,只需加载URL
。您需要使用以下方法,它将起作用:
/*! @abstract Navigates to the requested file URL on the filesystem.
@param URL The file URL to which to navigate.
@param readAccessURL The URL to allow read access to.
@discussion If readAccessURL references a single file, only that file may be loaded by WebKit.
If readAccessURL references a directory, files inside that file may be loaded by WebKit.
@result A new navigation for the given file URL.
*/
@available(iOS 9.0, *)
open func loadFileURL(_ URL: URL, allowingReadAccessTo readAccessURL: URL) -> WKNavigation?
以便:
self.webView.loadFileURL(myurl, allowingReadAccessTo: myurl)
myurl
打印什么?您是如何在这里使用WKWebView
的?但是它没有从safari(develope/)加载到屏幕上
这是什么意思?Safari是一款外部浏览器。你的意思是说WebView
只是而不是Safari吗?这个代码没有问题let request=URLRequest(url:myurl)self.WebView.load(request)
。您需要通过从该url创建数据对象来检查文件是否存在于同一url上。@TheTiger,是的,它在我的模拟器中工作正常,但在iPhone(真实设备)中不工作。您的接受率为0。你还没有接受你所有问题的任何一个答案。这不好。