【发布时间】:2018-11-03 15:58:02
【问题描述】:
我正在尝试在 iOS 应用程序 (Swift 4.2) 的 WKWebView 中加载本地 html 文件。不幸的是,这个本地文件包含似乎没有被执行的 javascript 代码。
下面是这个html文件(取自https://www.verovio.org/tutorial.xhtml?id=topic00):
<html>
<head>
<title>Verovio Hello World! example</title>
<script src="verovio-toolkit.js" type="text/javascript" ></script>
<script src="jquery-3.1.1.min.js" type="text/javascript" ></script>
</head>
<body>
Hello World!
<div id="svg_output"/>
<script type="text/javascript">
var vrvToolkit = new verovio.toolkit();
$.ajax({
url: "Beethoven_StringQuartet_op.18_no.2.mei"
, dataType: "text"
, success: function(data) {
var svg = vrvToolkit.renderData(data);
$("#svg_output").html(svg);
}
});
</script>
</body>
</html>
以及下面用swift编写的视图控制器文件:
import UIKit
import WebKit
class ViewController: UIViewController, WKUIDelegate, WKNavigationDelegate {
@IBOutlet weak var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
webView.uiDelegate = self
webView.navigationDelegate = self
let url = Bundle.main.url(forResource: "index", withExtension: "html", subdirectory: "html")!
webView.loadFileURL(url, allowingReadAccessTo: url)
}
}
文件位于项目属性的“构建阶段/复制捆绑资源”下的本地文件。我也尝试将它们放在一个目录中,但没有任何成功。在项目内部的文件组织下方。
编辑:当我将 html 文件中的 url 从 Beethoven.mei 更改为 https://www.verovio.org/gh-tutorial/mei/Beethoven_StringQuartet_op.18_no.2.mei(相同的文件,但在 Verovio 的网站上)时,一切正常!!
所以:
本地 .js 资源工作正常
问题来自 jquery 无法加载本地文本文件
知道如何让 jquery 能够加载本地文件吗?
谢谢!
M.
【问题讨论】:
标签: javascript html ios swift xcode