2017-01-25 12 views
1

Ich lerne immer noch Swift so bitte mit mir. :)injizieren JavaScript in UIWebView

Ich versuche, eine lokale JS-Datei in eine UIWebView zu injizieren. Ich habe es eingerichtet, um die Desktop-Version der Website zu laden, aber es scheint nicht zu funktionieren. Ich konnte nichts in Swift 3 finden, um dies zu tun und versuchte es zusammenzufügen, aber es scheint, dass ich eine Ziegelsteinwand getroffen habe.

Hier ist, was ich bisher habe:

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. 
} 
} 

Danke für irgendwelche und alle Hilfe!

Antwort

0

Sie sind fast in der Nähe. Sie übersprungen wichtig eine Zeile JS von jspath in

webView.stringByEvaluatingJavaScript(from: jsPath!) 

zu laden Wo Sie versehentlich injizieren js Pfad statt js selbst. Also, um den Inhalt der js-Datei zu laden:

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

Dann Übergabe der js zur Webansicht wie gewohnt.

webView.stringByEvaluatingJavaScript(from: js!) 
Verwandte Themen