web-dev-qa-db-fra.com

iOS WKWebView Swift javascript enable

J'essaie de développer une application simple pour parcourir mon site Web. Cependant, mon site Web contient du javascript et il n'affiche pas correctement mon site Web.

Dans le passé, développez avec Android la même application et deviez activer comme ceci:

webSettings.setJavaScriptEnabled(true);

C'est actuellement mon code, il me manque juste l'option d'activer javascript si quelqu'un peut aider appréciera vraiment

import WebKit

class ViewController: UIViewController {

  @IBOutlet weak var webView: WKWebView!

  override func viewDidLoad() {
    super.viewDidLoad()
    let url = URL(string: "http://132.148.136.31:8082")
    let urlRequest = URLRequest(url: url!)

    webView.load(urlRequest)
  }
}
7
lusito92

Travailler avec WKWebView est préférable de le créer à partir du code. Et vous pouvez définir javaScriptEnabled sur configuration:

let preferences = WKPreferences()
preferences.javaScriptEnabled = true
let configuration = WKWebViewConfiguration()
configuration.preferences = preferences
let webview = WKWebView(frame: .zero, configuration: configuration)

Mise à jour. Il s'agit de WKWebView dans la classe de contrôleur de vue:

import UIKit
import WebKit

class ViewController: UIViewController {

    private var webView: WKWebView!

    override func viewDidLoad() {
        super.viewDidLoad()

        let preferences = WKPreferences()
        preferences.javaScriptEnabled = true
        let configuration = WKWebViewConfiguration()
        configuration.preferences = preferences
        webView = WKWebView(frame: view.bounds, configuration: configuration)
        view.addSubview(webView)
    }
}
11
Andrew Bogaevskyi

Vous utilisez la vue de storyboard WKWebView pour accéder directement à la configuration. Utilisez donc les préférences dans votre configuration WKWebView.

import WebKit

class ViewController: UIViewController {

  @IBOutlet weak var webView: WKWebView!

  override func viewDidLoad() {
    super.viewDidLoad()
    let url = URL(string: "http://132.148.136.31:8082")
    let urlRequest = URLRequest(url: url!)

    // enable JS
    webView.configuration.preferences.javaScriptEnabled = true
    webView.load(urlRequest)
  }
}
1
Md Imran Choudhury