代码之家  ›  专栏  ›  技术社区  ›  Giorgio Ghisotti

我可以在UIWebView中禁用JS吗?(目标C)

  •  0
  • Giorgio Ghisotti  · 技术社区  · 6 年前

    我正在使用Xcode 8为iOS编写一个简单的RSS阅读器,并为iOS 10.0构建。

    我允许用户保存网页以便脱机阅读;然而,当没有internet连接时,本地HTML文件需要很长时间才能加载,因为我加载它们时使用的UIWebView试图解析图像等外部资产(或者至少我认为它正在这样做)。我认为在没有互联网连接的情况下禁用JS可以解决这个问题,但我不知道如何做到这一点,我也没有找到太多关于这一问题的信息。

    tl,dr:有没有办法在UIWebView中禁用javascript?

    非常感谢。

    1 回复  |  直到 5 年前
        1
  •  4
  •   LGP    6 年前

    如果您正在构建iOS 10.0,则应使用 WKWebView 相反它支持禁用javascript,也是推荐使用的组件。

    首先创建preferences对象。您需要在创建web视图之前进行设置。

    WKPreferences *preferences = [[WKPreferences alloc] init];
    preferences.javaScriptEnabled = NO; // Here its set
    
    // Other things you might want to disable
    preferences.javaScriptCanOpenWindowsAutomatically = NO;
    

    然后创建保存首选项的配置对象。

    WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];
    configuration.preferences = preferences;
    

    然后创建web视图。

    WKWebView *webView = [[WKWebView alloc] initWithFrame:frame configuration:configuration];
    

    Read more about WKWebView here