ios - 从 HTML 字符串 wkwebview 加载脚本

标签 ios swift swift3 wkwebview

是否可以通过使用 WKWebView loadHTMLString 方法加载的 html 从 Xcode 项目加载脚本文件?

例如,如果我有一个名为 DemoProject 的项目,根目录中有名为 script1.js 和 script2.js 的 javascript 文件。然后我正在加载一个试图引用这些文件的 html 字符串。那可能吗?如果是这样,我该如何正确引用这些文件?

最佳答案

尝试将其作为用户脚本注入(inject)。 如果您的文件夹结构是这样的,请使用以下函数将其加载为用户脚本

enter image description here

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
}

将其添加到 Controller

func registerScriptsAndEvents() {

    let controller = self.wkWebView.configuration.userContentController
    // Load the entire script to the document
    controller.addUserScript(fetchScript())
}

关于ios - 从 HTML 字符串 wkwebview 加载脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43369683/

相关文章:

ios - 当我制作 libobjcipc 时出现此错误。 "' MSFindSymbol' 在 C99 中无效 "

ios - 如何使用 Realm 和 Swift 从 TableView 中删除一个部分和一行?

swift - 如何以编程方式设置 UICollectionViewCell 宽度和高度

ios - textFieldShouldEndEditing 故障?

ios - XCode 8.0 应用构建超慢

objective-c - 获取 Obj-C Cocoapod API 以在 Swift 3.0 应用程序中使用

ios - 内存泄漏声明常量

objective-c - UIButton不显示文字设置宽度[UIButton setTitle]

ios - 当一个 UIButton 被点击时,你如何让它变大,然后使用 Swift 3 回到以前/正常的大小?

iPhone在哪些情况下无法获取mac地址成功?