Swift WKWebView禁用Javascript

13

我正在使用 WKWebView 在我的应用程序中加载一些链接。我想禁用几乎所有网页上出现的烦人的 JavaScript 横幅。是否有一个简单的函数可以完成这个任务?

您需要使用以下代码来实现该功能:

webView.configuration.preferences.javaScriptEnabled = false
2个回答

17

WKWebView有一个配置可以禁用JavaScript,请查看Apple的参考文档

var javaScriptEnabled: Bool

更新

let preferences = WKPreferences()
preferences.javaScriptEnabled = false

// Create a configuration for the preferences
let configuration = WKWebViewConfiguration()
configuration.preferences = preferences

 // Instantiate the web view
webView = WKWebView(frame: view.bounds, configuration: configuration)

// Load page
if let theWebView = webView{
   let url = NSURL(string: "http://www.apple.com")
   let urlRequest = NSURLRequest(URL: url!)
   theWebView.loadRequest(urlRequest)
   theWebView.navigationDelegate = self
   view.addSubview(theWebView)
}

我该如何在我的代码中实现javaScriptEnabled?我声明了一个变量alpha = WKPreferences(),然后将alpha.javaScriptEnabled设置为false,但是JavaScript仍然被加载。 - Swift1
1
你是否已经添加了WKNavigationDelegate? - Rashwan L
工作正常。但现在一些链接以桌面模式加载。有没有强制以移动模式加载的选项? - Swift1
这些链接是否支持响应式设计? - Rashwan L
链接由解析器生成。 - Swift1

1

对于仍在使用Objective-C的我们,这是解决方案:

WKPreferences *prefs = [[WKPreferences alloc]init];
prefs.javaScriptEnabled = NO;

// Create a configuration for the preferences
WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc]init];
config.preferences = prefs;

// Instantiate the web view
_webView = [[WKWebView alloc]initWithFrame:[[UIScreen mainScreen]bounds] configuration:config];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接