从 HTML 字符串 wkwebview 加载脚本
Posted
技术标签:
【中文标题】从 HTML 字符串 wkwebview 加载脚本【英文标题】:Loading scripts from HTML string wkwebview 【发布时间】:2017-04-12 12:34:15 【问题描述】:是否可以通过使用 WKWebView loadhtmlString 方法加载的 html 从 Xcode 项目中加载脚本文件?
例如,如果我有一个名为 DemoProject 的项目,其根目录中有名为 script1.js 和 script2.js 的 javascript 文件。然后我正在加载一个试图引用这些文件的 html 字符串。那可能吗?如果是这样,我该如何正确引用这些文件?
【问题讨论】:
试试这个 找到了,没找到。 HTML 文件和脚本是否在同一个目标中? 没有html文件,我将一个包含html的字符串加载到wkwebview中。该字符串包含 。这些文件位于项目的根目录中。 如何将文件内容转换为字符串,然后用 webView.stringByEvaluatingJavascript 注入?我不记得函数的确切名称,但你可以检查一下。希望对你有帮助 【参考方案1】:尝试将其作为用户脚本注入。 如果您的文件夹结构是这样的,请使用以下函数将其加载为用户脚本
private func fetchScript() -> WKUserScript!
var jsScript = ""
if let jsPath = Bundle.main.path(forResource: "hello", ofType: "js", inDirectory: "scripts")
do
jsScript = try String(contentsOfFile: jsPath, encoding: String.Encoding.utf8)
catch
print("Error")
let wkAlertScript = WKUserScript(source: jsScript, injectionTime: .atDocumentEnd, forMainFrameOnly: true)
return wkAlertScript
将其添加到控制器
func registerScriptsAndEvents()
let controller = self.wkWebView.configuration.userContentController
// Load the entire script to the document
controller.addUserScript(fetchScript())
【讨论】:
你可以查看这个项目github.com/anoop4real/WKWebViewExperiments我尝试了很多东西 @anoop4real,hello.js文件应该通过start.html文件调用。以上是关于从 HTML 字符串 wkwebview 加载脚本的主要内容,如果未能解决你的问题,请参考以下文章
从 HTML 将图像加载到 UITextview/WKWebView
如何检查 WKWebView 是不是已加载 HTML 字符串
WKWebView 从文档目录加载 html 在设备上不起作用