是否可以通过使用WKWebView loadHTMLString方法加载的html从Xcode项目加载脚本文件?
例如,如果我有一个名为DemoProject的项目,在根目录中使用名为script1.js和script2.js的javascript文件。然后我加载了一个试图引用这些文件的html字符串。那可能吗?如果是这样,我如何正确引用这些文件?
答案 0 :(得分: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())
}