javascript - 将 JavaScript 注入(inject) UIWebView

标签 javascript ios iphone uiwebview swift3

我正在尝试将本地 JS 文件注入(inject)到 UIWebView 中。我已将其设置为加载该网站的桌面版本,但它似乎不起作用。我在 Swift 3 中找不到任何东西来做到这一点,并尝试将其拼凑在一起,但似乎我遇到了困难。

这是我到目前为止所得到的:

import UIKit

class ViewController: UIViewController, UIWebViewDelegate {

@IBOutlet weak var webView: UIWebView!

override func viewDidLoad() {
    super.viewDidLoad()

    UserDefaults.standard.register(defaults: ["UserAgent": "custom value"])

    webView.loadRequest(URLRequest(url: URL(string: "https://www.myfitnesspal.com/account/login")!))

    func webViewDidFinishLoad(webView: UIWebView) {

        let jsPath = Bundle.main.path(forResource: "mfpketo.user", ofType: "js")

        webView.stringByEvaluatingJavaScript(from: jsPath!)

        print("test")
    }

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}
}

最佳答案

你已经接近了。您跳过了重要的一行从 jspath 加载 JS in

webView.stringByEvaluatingJavaScript(from: jsPath!)

你错误地注入(inject)了js路径而不是js本身。因此,加载js文件的内容:

var js = try? String(contentsOfFile: jsPath, encoding: String.Encoding.utf8)

然后,照常将js移交给webview。

 webView.stringByEvaluatingJavaScript(from: js!)

关于javascript - 将 JavaScript 注入(inject) UIWebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41846286/

相关文章:

iphone - MPMoviePlayerController 释放问题

javascript - web2py:如何将 javascript 添加到 Web2py Crud 表单?

javascript - 在jsp中获取屏幕宽度作为变量

ios - xcodebuild 命令行 : passing DevelopmentTeam ID for code signing purpose

iphone - 我们如何找到由纬度或经度定义的两个位置之间的角度

ios - iPhone编程中用于登录应用的Post方法

javascript - 突出显示单击的页码

javascript - 如何从 JSP 页面中的按钮 onclick 调用 JavaScript 函数

objective-c - UITableviewcell 加载数据问题

ios - 拖动时删除 UITableView 和 UIRefreshControl 之间的空白