• WKWebView _WebFilterIsActive returning: NO


    写这篇文是因为在UIWebView加载页面的时候有时候会返回:

    filterBlacklist =     (
        );
        filterWhitelist =     (
        );
        restrictWeb = 1;
        useContentFilter = 0;
        useContentFilterOverrides = 0;
        whitelistEnabled = 0;

     _WebFilterIsActive returning: NO

    网上查询了很多,大概是Htpps的问题。由于目前服务器并不支持https,虽然页面可以加载,但是看到这些输出心里就是不爽。

    加载HTTPS请求,但不安全的资源'…'。这个内容也应该是通过HTTPS;

    虽然并不知道WKWebView是否能从根本上解决这个问题,但是改为WK以后确实没有同样的输出出现;

    另外WK在性能上的确优于UIWebView,但是WK只支持iOS8以后的系统,所以如果项目不要求支持iOS8以下,选择WK是更好的决定;

    速度更快了,占用内存少了,一句话,WKWebView是App内部加载网页的最佳选择!

    一、加载网页或HTML代码的方式与UIWebView相同,代码示例如下:

     WKWebView *webView = [[WKWebView alloc] initWithFrame:self.view.bounds];
    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.baidu.com"]]];
    [self.view addSubview:webView];
    

      

    二、加载的状态回调 (WKNavigationDelegate)

    // 页面开始加载时调用
    - (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation;
    // 当内容开始返回时调用
    - (void)webView:(WKWebView *)webView didCommitNavigation:(WKNavigation *)navigation;
    // 页面加载完成之后调用
    - (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation;
    // 页面加载失败时调用
    - (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(WKNavigation *)navigation;
    

    这里插一条。以前我们控制html播放器在页面播放会使用

    _webView.allowsInlineMediaPlayback = YES;
    

    在使用WK的时候需要做一些更改:

    _webView.configuration.allowsInlineMediaPlayback = YES;
    

      

    知道以上这些就可以简单的加载出你需要的页面。深层次的用法可以去查询API,另外简书大神的博客可供参考:

    http://www.jianshu.com/p/6ba2507445e4

  • 相关阅读:
    011-iOS核心动画(Core Animation)
    010-CALayer(图层)
    009-手势触摸事件处理
    008-Quartz2D
    007-多控制器管理及其控制器间的数据传递
    007-多控制器管理(控制器间的数据传递)
    通过底层 socket 监控 http/https 思路
    NDK 线程同步
    时间同步算法探究
    Android 事件小结
  • 原文地址:https://www.cnblogs.com/lidarui/p/6210579.html
Copyright © 2020-2023  润新知