我正在尝试将本地JS文件注入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.
}
}
答案 0 :(得分:0)
你差不多了。您跳过重要的一行,从<{p>中的JS
加载jspath
webView.stringByEvaluatingJavaScript(from: jsPath!)
你错误地注入js路径而不是js本身。因此,要加载js文件的内容:
var js = try? String(contentsOfFile: jsPath, encoding: String.Encoding.utf8)
然后,像往常一样将js
移交给webview。
webView.stringByEvaluatingJavaScript(from: js!)