用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;
-
minimumFontSize
最小字体大小,默认的为0就是h5是多少就显示多大 -
tabFocusesLinks
不太明白,官网也没解释 -
javaEnabled
是否启用java,默认是NO -
javaScriptEnabled
是否启用javaScript,默认是YES
默认值为“是”。将此属性设置为“否”,禁用由网页加载或执行的JavaScript。此设置不会影响用户脚本 -
javaScriptCanOpenWindowsAutomatically
一个布尔值,表示JavaScript是否可以在没有用户交互的情况下打开窗口
默认值为iOS中的NO,MAC OS中为YES。 -
plugInsEnabled
指示是否启用插件的布尔值
默认是NO
不太懂这个启用插件是什么意思
1.3 processPool
从中获取视图的Web内容处理的进程池
@property(nonatomic, strong) WKProcessPool *processPool
好像没什么内容
1.4 userContentController
与Web视图关联的用户内容控制器
它提供了方法给JavaScript去发消息以及给webview注入js代码
- 1.4.1 addScriptMessageHandler:name:
添加js
方法处理,js
调用原生就用这个
参数1:消息的处理者(self,用self会导致循环引用,但是这里我们先这么写)
参数2:消息名
[_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.2 addUserScript:
添加需要执行的js
代码
WKUserScript -
1.4.3 removeAllUserScripts
移除所有关联的用户脚本 -
1.4.4 removeScriptMessageHandlerForName:
删除脚本消息处理程序
跟 1.4.1 addScriptMessageHandler:name:一个是添加一个是删除
- 1.4.5 userScripts
@property(nonatomic, readonly, copy) NSArray<WKUserScript *> *userScripts;
与用户内容控制器相关联的用户脚本,是个数组
- 1.4.6 WKContentRuleList
暂时没用到,不太会
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添加处理方案
网友评论