zoukankan      html  css  js  c++  java
  • WKWebView API精讲(OC)

    WKWebView

    看看WKWebView的头文件声明:

    WKWebViewConfiguration配置

    WKPreferences偏好设置

    目前在iOS平台上偏好设置只有三个属性可以设置,如下:

    WKProcessPool内容处理池

    WKProcessPool并没有公开任何的属性或者方法,不需要配置:

    其实我们也没有必须去创建它。

     

    WKUserContentController内容交互控制器

    我们要通过JS与webview内容交互,就需要到这个类了,它的所有属性及方法说明如下:

    WKUserScript

    在WKUserContentController中,所有使用到WKUserScript。WKUserContentController是用于与JS交互的类,而所注入的JS是WKUserScript对象。它的所有属性和方法如下:

     
    // JS源代码
    @property (nonatomic, readonly, copy) NSString *source;
     
    // JS注入时间
    @property (nonatomic, readonly) WKUserScriptInjectionTime injectionTime;
     
    // 只读属性,表示JS是否应该注入到所有的frames中还是只有main frame.
    @property (nonatomic, readonly, getter=isForMainFrameOnly) BOOL forMainFrameOnly;
     
    // 初始化方法,用于创建WKUserScript对象
    // source:JS源代码
    // injectionTime:JS注入的时间
    // forMainFrameOnly:是否只注入main frame
    - (instancetype)initWithSource:(NSString *)source injectionTime:(WKUserScriptInjectionTime)injectionTime forMainFrameOnly:(BOOL)forMainFrameOnly;
    WKUserScriptInjectionTime

    它是一个枚举类型,只有在文档开始加载时注入和加载结束时注入。

    WKWebsiteDataStore存储的Web内容

    iOS9.0以后才能使用这个类。它是代表webview不同的数据类型,包括cookies、disk、memory caches、WebSQL、IndexedDB数据库和本地存储。

    从这里看,要优化Webview好像可以通过它来实现,不过要求iOS9.0以上才能使用。现在6.0都没有抛弃的我,从来不能考虑这种最新的。

    所有的dataTypes是下面这些系统所定义的:

    WKWebsiteDataRecord

    iOS9.0以后才可用。

    website的数据存储记录类型,它只有两个属性:

    WKSelectionGranularity选择粒度

    它表示在webview上选择内容的粒度,只有下面这两种类型:

    它是用于webview内容交互时选择内容的粒度类型设置。比如说,当使用WKSelectionGranularityDynamic时,而所选择的内容是单个块,这时候granularity可能会是单个字符;当所选择的web内容不限制于某个块时,granularity可能会是单个块。

     

    WKNavigationDelegate

    WKNavigationActionPolicy

    导航动作决定策略:

    它是枚举类型,只有Cancel和Allow这两种。设置为Cancel就是不允许导航,就不会跳转链接。

    WKNavigationResponsePolicy

    WKNavigationResponse

    WKNavigationResponse是导航响应类,通过它可以获取相关响应的信息:

    只有接收响应与不接收响应两种。

    WKNavigationAction

    WKNavigationAction对象包含关于导航的action的信息,用于make policy decisions。它只有以下几个属性:

    WKNavigationType

    WKNavigationType类型是枚举类型,它的可选值如下:

    WKUIDelegate

    WKBackForwardList

    WKBackForwardList表示webview中可以前进或者后退的页面列表。其声明如下:

    WKBackForwardListItem

    页面导航前进、后退列表项:

    最后

    本篇文章只是讲解了WKWebView所有相关的类的API,先阅读过本篇文章,再继续往下阅读实战篇文章!

  • 相关阅读:
    Extension Methods (C# Programming Guide)
    ArraySegment
    git config
    0.0.0.0 IPAddress.Any 【】127.0.0.1 IPAddress.Loopback 【】localhost
    public static float CompareExchange(ref float location1,float value,float comparand)
    ConcurrentDictionary中的 TryRemove
    enum类型
    Array.Copy vs Buffer.BlockCopy
    伴随待字闺中的生命周期分析
    Twitter实时搜索系统EarlyBird
  • 原文地址:https://www.cnblogs.com/jiang-xiao-yan/p/5345888.html
Copyright © 2011-2022 走看看