是否可以通過加載WKWebView loadHTMLString方法的HTML加載Xcode項目的腳本文件?從HTML字符串加載腳本wkwebview
例如,如果我有一個名爲DemoProject的項目,並在根目錄中具有名爲script1.js和script2.js的JavaScript文件。然後我加載一個試圖引用這些文件的html字符串。那可能嗎?如果是這樣,我如何正確引用這些文件?
是否可以通過加載WKWebView loadHTMLString方法的HTML加載Xcode項目的腳本文件?從HTML字符串加載腳本wkwebview
例如,如果我有一個名爲DemoProject的項目,並在根目錄中具有名爲script1.js和script2.js的JavaScript文件。然後我加載一個試圖引用這些文件的html字符串。那可能嗎?如果是這樣,我如何正確引用這些文件?
嘗試將其註冊爲用戶腳本。 如果您的文件夾結構是這樣的,使用以下函數將其加載作爲用戶腳本
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())
}
我會試試這個,讓你知道它是否有效。 – ImmortalBajan
你可以查看這個項目https://github.com/anoop4real/WKWebViewExperiments我試了很多東西 – anoop4real
@ anoop4real,應該通過start.html文件調用hello.js文件。 –
嘗試此 – Adolfo
我確實沒有找到它。 – ImmortalBajan
HTML文件和腳本都在同一個目標中嗎? – Adolfo