iOS编程IOS开发

WKWebView - WKWebViewConfigurati

2018-11-12  本文已影响72人  edison0428

WKWebViewConfiguration您可以确定网页呈现的时间,如何处理媒体回放等其他

只有在初始化WKWebView的时候设置configuration,并不能在WKWebView创建后去修改configuration

用于初始化WKWebView的配置

1.WKWebViewConfiguration
1.1 applicationsNameForUserAgent

用户代理字符串中使用的应用程序的名称
具体什么意思不是很明白

NSString * baseAgent = _webView.configuration.applicationNameForUserAgent;
NSLog(@"baseAgent=%@",baseAgent);
1.2 preferences
@property(nonatomic, strong) WKPreferences *preferences;
1.3 processPool

从中获取视图的Web内容处理的进程池

@property(nonatomic, strong) WKProcessPool *processPool

好像没什么内容

1.4 userContentController

与Web视图关联的用户内容控制器
它提供了方法给JavaScript去发消息以及给webview注入js代码

[_contentController addScriptMessageHandler:delegateController name:name];

js消息触发会进入webkit的回调

- (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message{
    
    NSLog(@"name:%@\\\\n body:%@\\\\n frameInfo:%@\\\\n",message.name,message.body,message.frameInfo);
    if ([message.name isEqualToString:@"toProfile"]) {
        // [self ShareWithInformation:message.body];
        NSLog(@"点击去完善");
    }
}

js的代码如下

window.webkit.messageHandlers.JS_Function_Name.postMessage({body: 'paramters'});

删除脚本消息处理程序
跟 1.4.1 addScriptMessageHandler:name:一个是添加一个是删除

@property(nonatomic, readonly, copy) NSArray<WKUserScript *> *userScripts;

与用户内容控制器相关联的用户脚本,是个数组

1.5 websiteDataStore
1.6 ignoresViewportScaleLimits

一个布尔值决定是否应该被允许wkwebview对象总是允许被缩放
默认值为NO,不允许缩放
将此属性设置为true允许网页缩放,而不考虑h5作者的意图。这个属性覆盖网页中的用户可伸缩HTML属性。

1.7 suppressesIncrementalRendering

一个布尔值,该值指示Web视图是否在完全加载到内存中之前抑制内容呈现
默认是no

1.8 allowsInlineMediaPlayback

一个布尔值,指示HTML5视频是否在线播放或使用本机全屏控制器
iPhone的默认值为false,iPad的默认值为true

这个值决定了用内嵌HTML5播放视频还是用本地的全屏控制,为了内嵌视频播放,不仅仅需要在这个页面上设置这个属性,还必须的是在HTML中的video元素必须包含webkit-playsinline属性
将此属性设置为true,内嵌播放视频。将此属性设置为false以使用本机全屏控制器

1.9 allowsAirPlayForMediaPlayback

一个布尔值,指示是否AirPlay允许播放
默认的是yes

1.10 allowsPictureInPictureMediaPlayback

一个布尔值,是否允许html视频播放画中画中
默认的是yes
不太明白这个属性

1.11 mediaTypesRequiringUserActionForPlayback

确定哪些媒体类型需要用户手势开始播放
类型是WKAudiovisualMediaTypes
WKAudiovisualMediaTypeNone表示不需要手势开始播放媒体

1.12

selectionGranularity
是个枚举类

WKSelectionGranularityCharacter:用户长按复制文字的选择区域是非用户自定义,选择点可以放置在任何字符边界上
WKSelectionGranularityDynamic:用户长按复制文字的选择是用户自定义

没发现这二者太大的区别,有待以后验证

1.13 userInterfaceDirectionPolicy

这个是mac os 的属性
用户界面元素的方向性,不知道什么意思

1.14 dataDetectorTypes

所需的数据检测类型,比如webview里我们可以检测电话号码、链接、地址、日历、邮箱
所以我们可以设置需要检测哪些类型,是个枚举类型WKDataDetectorTypes

WKDataDetectorTypeNone:没有进行检测
WKDataDetectorTypePhoneNumber:电话号码被检测并变成链接
WKDataDetectorTypeLink:文本中的URL被检测并转换为链接
WKDataDetectorTypeAddress:地址被检测并转换为链接
WKDataDetectorTypeCalendarEvent:将来的日期和时间被检测并转换为链接
WKDataDetectorTypeTrackingNumber:跟踪号码被检测并转换为链接
WKDataDetectorTypeFlightNumber:航班号被检测并转换为链接
WKDataDetectorTypeLookupSuggestion:没有解释是做什么的
WKDataDetectorTypeAll:所有上述数据类型在检测时都被转换为链接。选择此值将自动包含添加到该常数的任何新检测类型
1.15 setURLSchemeHandler:forURLScheme:

为给定的URL scheme添加处理方案

上一篇 下一篇

猜你喜欢

热点阅读