我正在开发一个使用id | title | relevant_ids
1 | title1 | 6,2,3
2 | title2 | 1
3 | title3 | 1,6
4 | title4 | 5,3
5 | title5 | 6,2,3
6 | title6 | 2,3
来显示html文档的应用。我想将我的Swift代码中的内容注入到本文档中。这就是我试过的:
WKWebView
只要JavaScript函数调用中的参数是硬编码的,这就完全按照我的预期运行:
var myString: String
// ... Code which assigns some value to myString
targetView.evaluateJavaScript("injector.injectSnippet(\(myString);", completionHandler: nil)
targetView.evaluateJavaScript("injector.injectSnippet(\"Hello World\");", completionHandler: nil)
对象位于我已添加到网络视图的用户控制器的JavaScript文件中:
injector
如何将内容导入WKWebView?
我浏览了Apple docs WebKit Objective-C编程指南和 WebKit DOM编程主题,但我不明白什么样的var injector = (function () {
"use strict"
var msgBox;
var injectSnippet = function (test) {
msgBox.innerHTML = "Received value: " + test;
}
var init = function () {
// Create msgBox div element and insert it into the document
}
return {
init: init,
injectSnippet: injectSnippet
};
} ());
injector.init();
他们在那里上课。 WebView
和WKWebView
都不具备他们在这些文档中使用的所有API。
有没有办法在Swift中直接操作DOM?我认为WebScriptObject可能是我正在寻找的,但我可以将其与UIWebView
一起使用吗?
答案 0 :(得分:0)
如果要继续使用evaluateJavaScript,则需要将值注入javascript字符串。
像
这样的东西var jsTemplate = "injector.injectSnippet(\"%@\");"
var js = String(format:jsTemplate , myString)