WKUserContentController


文章目录

  • WKUserContentController
  • 一、WKUserContentController是什么?
  • 二、详解
    • 1.属性方法
    • 1.1 WKUserScript
    • 1.2 WKContentRuleList、WKContentRuleListStore
    • 2.Demo
  • 总结

一、WKUserContentController是什么?

WKUserContentController对象为JavaScript提供了一种发布消息并将用户脚本注入webView的方法。

二、详解

1.属性方法


iOS 8.0+// 添加name的脚本消息处理。 H5调用原生
func add(WKScriptMessageHandler, name: String)// 移除name的脚本消息处理
func removeScriptMessageHandler(forName: String)// 注入JS方法,供前端调用。 原生调用H5
func addUserScript(_ userScript: WKUserScript)// 移除所有关联的用户脚本
func removeAllUserScripts()// 与UserContentController(用户内容控制器)关联的用户脚本
var userScripts: [WKUserScript]*****************添加和删除内容规则 iOS 11.0+ *****************
// 添加内容规则列表。
func add(_ contentRuleList: WKContentRuleList)// 移除内容规则列表。
func remove(WKContentRuleList)// 移除所有的内容规则列表
func removeAllContentRuleLists()***************** 实例方法 iOS 14.0+ *****************
// 用命名空间来区分不同环境的消息事件
func add(WKScriptMessageHandler, contentWorld: WKContentWorld, name: String)func addScriptMessageHandler(WKScriptMessageHandlerWithReply, contentWorld: WKContentWorld, name: String)func removeAllScriptMessageHandlers()func removeAllScriptMessageHandlers(from: WKContentWorld)func removeScriptMessageHandler(forName: String, contentWorld: WKContentWorld)

1.1 WKUserScript

WKUserScript对象表示可以注入网页的脚本。


// 初始化一个可以添加到用户内容控制器的用户脚本。
// source:脚本的源代码。
// injectionTime: 应将脚本注入网页的时间。WKUserScriptInjectionTime枚举
// forMainFrameOnly:应将脚本注入到主框架(true)还是应注入所有框架(false)。
init(source: String, injectionTime: WKUserScriptInjectionTime, forMainFrameOnly: Bool)var source: String
var injectionTime: WKUserScriptInjectionTime
var isForMainFrameOnly: Boolenum WKUserScriptInjectionTime : Int
case atDocumentStart // 在创建document元素之后但在加载任何其他内容之前注入脚本。
case atDocumentEnd // 在document完成加载之后但在其他子资源完成加载之前注入脚本。// 初始化一个指定命名空间的、可以添加到用户内容控制器的用户脚本iOS 14.0+
init(source: String, injectionTime: WKUserScriptInjectionTime, forMainFrameOnly: Bool, in: WKContentWorld)

1.2 WKContentRuleList、WKContentRuleListStore

适用于Web内容的已编译规则列表。

2.Demo

未完待续。。。


总结

iOS WKUserContentController相关推荐

  1. iOS与JS交互的4种方法

    iOS与JS交互的方法: 1.拦截url(适用于UIWebView和WKWebView) 2.JavaScriptCore(只适用于UIWebView,iOS7+) 3.WKScriptMessage ...

  2. iOS 走近商城 APP(三 WKWebView 商品规格选择框架封装)

    原文链接:http://www.jianshu.com/p/293ee1bfe104 商城 -- 由 3033 分享 开篇 忽然发现最近也只有值班才能写东西了,中间更新了两篇其他的断了下商城相关的文章 ...

  3. iOS下JS与OC互相调用(二)--WKWebView 拦截URL

    在上篇文章中讲述了使用UIWebView拦截URL的方式来处理JS与OC交互. 由于UIWebView比较耗内存,性能上不太好,而苹果在iOS 8中推出了WKWebView. 同样的用WKWebVie ...

  4. WKWebView 实现iOS与H5的交互转

    在iOS开发中,H5的嵌入可以通过UIWebView或者WKWebView.这两个都是继承UIView,来加载web数据的类.UIWebView是在iOS2的时候开始使用的.特点是加载速度慢,占用内存 ...

  5. iOS内实现h5原生开发

    介绍 Xcode可以直接引入h5的界面,实现原生界面内嵌h5开发.其实这里不止iOS可以这样做,安卓也可以引用同样的h5界面,实现界面使用同一份h5代码. 为什么要写h5的界面呢,原因是第一Xcode ...

  6. iOS WKWebView JS原生交互之JS调用OC(附demo)

    Demo下载地址:https://github.com/msbaby520/WKWebViewJSCallOC 2019.02.26 更新 注意: iOS12起不再支持UIWebView,请采用WKW ...

  7. ios开发 ajax hook,IOS中的网络拦截总结

    因为业务场景需要,要求对App中网络请求进行拦截.这里包括原生网络请求和WebView里的网络请求.之前我们了解过原生网络请求的拦截是可以实现的,但是WebView中网络请求似乎还不太可能,所以抱着尝 ...

  8. iOS下JS与OC互相调用(六)--WKWebView + WebViewJavascriptBridge

    2019独角兽企业重金招聘Python工程师标准>>> iOS下JS与OC互相调用(六)--WKWebView + WebViewJavascriptBridge 转载:原地址 ht ...

  9. ip访问 webstorem_常见问题-iOS WebView IP直连 如何处理 Cookie

    WKWebView 无法使用 NSURLProtocol 拦截请求 针对该问题方案如下: 换用 UIWebView 使用私有 API 进行注册拦截 换用 UIWebView 方案不做赘述,说明下使用私 ...

最新文章

  1. apache+tomcat 子目录映射成子域名
  2. Java8之lambda表达式的总结
  3. 用神经网络分类连续与离散
  4. 【关于学习渗透】手把手教你玩转java反序列化cb链
  5. 用电脑发短信_丢掉你的手机数据线吧!用这个软件轻松在任何设备互传文件
  6. 深度学习之caffe1——软件配置与测试
  7. sql server解析xml属性为表格_[Mybatis][基础支持层]mapper xml sql 解析
  8. 分享:Python中的位运算符
  9. 114. PHP command line getopt
  10. GAMES101 Transformation Cont.
  11. 如何提高意志力如何坚持每天学习
  12. Qt学习—qt编写定时关机程序
  13. shell脚本中source和expert的简单理解
  14. 应用商店优化(ASO)之关键词及描述优化
  15. 定位误差:基准位置公差、基准不重合误差
  16. [其他][转载]ACM知识点分类
  17. 51Nod 1378 夹克老爷的愤怒
  18. 【游戏客户端】实现游戏中的小地图
  19. [车联网安全自学篇] Car Hacking之CAN总线初探
  20. java svg png_java batik svg转png报错,球大神!!!在线等

热门文章

  1. 计算机表格中如何计算数据透视表,Excel表格中在数据透视表中添加计算字段的方法...
  2. 一点点有的没的和一年总结
  3. VMware报错:无法获得VMCI驱动程序的版本:句柄无效。驱动程序vmci.sys的版本不正确
  4. 一文看尽2020上半年阿里、腾讯、百度入选AI顶会论文
  5. matlab画图中颜色渐变
  6. 目标检测和感受野的总结和想法
  7. 对勾函数_对勾函数的图像及其性质1.pptx
  8. 第12集 关于库卡机器人对需要减速和插值方式说明
  9. linux php7.4,PHP 7.4登陆Ubuntu 20.04 LTS
  10. 1758 生成交替二进制字符串的最少操作数