一、前言 近日,有朋友问我关于WKWebView与JS的交互问题,可我之前一直使用的是UIWebView,也不曾做过WKWebView的交互啊!...接下来大家一块学习下WKWebView是怎么实现原生代码和JS交互的。...二、WKWebView 支持更多的HTML5的特性 高达60fps滚动刷新频率与内置手势 与Safari相容的JavaScript引擎 在性能、稳定性方面有很大提升占用内存更少 协议方法及功能都更细致...三、WKWebView的代理方法 /*!...-> Void) 五、WKWebView与JS的交互使用 首页创建html文件,代码如下: <meta charset
WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init]; // 默认是NO,这个值决定了用内嵌HTML5播放视频还是用本地的全屏控制...监听网页内播放器的回调 可以使用两种办法。 2.1 利用HTML5 Audio/Video 事件 HTML5 Audio/Video 事件代码可以由H5同事完成,也可以由App端注入。...NSOrderedSame) { NSLog(@"video is ended"); } } 参考资料: HTML 音频/视频参考手册 video 属性和事件用法大全 iOS与JS...交互之WKWebView-WKScriptMessageHandler协议 2.2 还有一种是App可自己实现的,使用AVAudioSession进行监听: 使用AVAudioSession监听,必须用到...NSError *sessionError = nil; [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback
前言: WKWebView 这是在iOS8.0之后增加的一个比UIWebView更加完善和强大的控件!...看网上关于它的博客也是有许多的了,从各个方面总结一下这个WKWebView看网上说它主要是为了和JS做好交互产生的,我们也会相应的尝试一下。就先从它基本的说起!...一:和UIWebView相比它的不同处 1:和JS更好的做交互,也支持H5的一些新特性 2:加载进度条(下面会演示) 3:性能高,加载变得更快更可靠 二:从加载一张网页开始 1:使用这个WKWebView...WKWebView有一个 estimatedProgress 属性,利用它来监听加载的进度,下面的进度打印出来了,但具体的进度条就没有写出来,你们可以自己写一个 UIProgressView 放在导航栏的下面...先看看 WKUIDelegate里面的代理方法都是用来做什么的,我们一个一个的解释这几个代理方法; // 创建方法,这个就不在多说了,重点放在下面几个 -(nullable WKWebView *)
前言 由于目前UIWebView 已经被抛弃了,因此推荐使用WKWebView的WKScriptMessageHandler实现iOS与JS交互 WKWebView是Apple在iOS8推出的Webkit...WKWebView 这么做是为了可以让 iOS 上的 WebView 滚动有更流畅的体验。...此时,修改这个 DOM 节点的样式属性同样也会应用到原生组件上。因此,「同层渲染」的原生组件与普通的内置组件表现并无二致。...与原生网络请求开发一致,NetworkProcess 也是通过封装的 NSURLSession 发起并管理网络请求的。...UIProcess进程:主要负责与 WebContent 进行交互,与 APP 在同一进程中,可以进行 WebView 的功能配置,并接收来自 WebContent 进程的各类消息,配合业务代码执行任务的决策
configuration.userContentController = userContentController // 给WKWebView与Swift交互起一个名字:callbackHandler...,WKWebView给Swift发消息的时候会用到 // 此句要求实现WKScriptMessageHandler协议 configuration.userContentController.add...configuration.userContentController = userContentController // 给WKWebView与Swift交互起一个名字...:callbackHandler,WKWebView给Swift发消息的时候会用到 // 此句要求实现WKScriptMessageHandler协议 configuration.userContentController.add...override func viewDidLoad() { super.viewDidLoad() title = "WebView与JS
WKWebView的使用 前言 最近项目中的UIWebView被替换为了WKWebView,因此来总结一下WKWebView的使用。...示例Demo:WKWebView的使用 本文将从以下几方面介绍WKWebView: 1、WKWebView涉及的一些类 2、WKWebView涉及的代理方法 3、网页内容加载进度条的实现 4、JS...和OC的交互 5、本地HTML文件的实现 一、WKWebView涉及的一些类 WKWebView:网页的渲染与展示 注意: #import //初始化...后,会发现字体小了很多,这应该是WKWebView与html的兼容问题,解决办法是修改原网页,要么我们手动注入JS NSString *jSString = @"var meta = document.createElement...的交互管理 //这个类主要用来做native与JavaScript的交互管理 WKUserContentController * wkUController = [[WKUserContentController
https://blog.csdn.net/u010105969/article/details/53541088 之前已经写过一个篇OC与JS交互的博客了(博客地址:http://blog.csdn.net.../u010105969/article/details/53189934),可当时用来展示网页的控件是UIWebView,而在iOS8之后苹果推出了WKWebView,此控件也能用来显示网页,可与JS的交互却与...在点击前三个按钮的时候会调用方法: // 警告框 - (void)webView:(WKWebView *)webView runJavaScriptAlertPanelWithMessage:(NSString...如果点击第四个conform按钮会调用方法: // 确认框 - (void)webView:(WKWebView *)webView runJavaScriptConfirmPanelWithMessage...注意:在利用UIWebView展示网页的时候我们如果要想与JS进行交互那么我们就得获取JS代码中的方法名,而我们在使用WKWebView的时候就不用了。
前言 在iOS8中,苹果推出了WKWebView。WKWebView有一个突出特点,就是内存占用少。 但作为一个全新的WebView,API相比于之前的UIWebView肯定会有所不同。...WKWebView的设置 WKWebView的主要设置项都在configuration成员中(比如是否允许浏览器手指缩放,h5的浏览器能否自动播放等)这些都属于浏览器本身的设置项。...self.webview.configuration.mediaTypesRequiringUserActionForPlayback = WKAudiovisualMediaTypeNone; // 控制用户与webview...WKNavigationDelegate 如命名,这个是WKWebView的导航的代理。它控制了WKWebView在加载一个页面流程中的各个关键时间节点的。...相当于WKWebView加载的生命周期方法。
情景描述 我们知道,UIWebView是有一个 keyboardDisplayRequiresUserAction属性的,默认为YES。...如果设置为YES,用户必须明确的点击页面上的元素或者相关联的输入页面来显示键盘;如果设置为NO,一个元素的焦点事件导致输入视图的显示和自动关联这个元素。...问题 然而,WKWebView是没有这个属性的,但又想做到以上效果,怎么办呢?...-> Void extension WKWebView{ var keyboardDisplayRequiresUserAction: Bool?...} 原文地址 https://stackoverflow.com/questions/32449870/programmatically-focus-on-a-form-in-a-webview-wkwebview
WKWebView WKWebView是现代 WebKit API 在 iOS 8 和 OS X Yosemite 应用中的核心部分。...如果你的app只需要支持iOS8.0之后的版本,那么非常建议你使用WKWebView来替代UIWbeView,性能不止提升了一个档次。...WKWebView与js交互 所谓轻应用,简单的来说就是原生应用集成了html页面入口,还能通过js与native实现交互,例如:通过js调用native封装好的viewController实现扫描与对应反馈功能...self.webViewloadRequest:[NSURLRequestrequestWithURL:[NSURLURLWithString:url]]]; } 在JSBridgeManager类里进行代理设置 简单的wkwebview...,native截取对应的url,读取与web端定义的协议规则,可进行简单的通讯。
一、WKWebView的使用: 1、初始化 webView初始化:WKPreferences, WKUserContentController -> WKWebViewConfiguration ->... WKWebView 这里添加了三个代理,代理方法会在下面实现。...,可以根据项目需求,做响应的处理: 前面三个 `func webView(_ webView: WKWebView, decidePolicyFor ...` 的方法是一样的,只是带的参数不一样,如果实现了...window.webkit.messageHandlers.moxiaoyan.postMessage("JS: 客户下单啦~"); } catch (e) { console.log(e); } } 二、与JS...与iOS交互 点击alert APP弹框 <button
,但是对于 WKWebview 里面所发出的请求即使他是 http/https 也无能为力,先来简单的了解下 WKWebView. # WKWebview iOS8 以后,苹果推出了新框架 Webkit...,提供了替换 UIWebView 的组件 WKWebView。...各种 UIWebView 的问题没有了,速度更快了,占用内存少了,一句话,WKWebView 是 App 内部加载网页的最佳选择!...# WebKit 源码分析 由于 WKWebview 是基于 webkit 内核来做的,所以我们在使用的时候需要导入一个这样的东西。...,也就是说 WKWebview 是和 NSURLProtocol 有一定关联,只是在 NSURLProtocol 的入口处返回 NO 所以导致 NSURLProtocol 不接管 WKWebview 的请求
LeeWkWebView 起因 之前lz公众号写个关于UIWebView的JS与App通信的文章,但是最新iOS审核规定需要替换掉UIWebView使用WKWebView才可以过审。...但是之前有大量UIWebView交互的地方,怎么办?...,项目突然提了我在加载web资讯的页面也想增加分享---调用App原生进行微信分享。...是我们通过点击button实现了App与JS的通信 (IBAction)manualCallJs:(id)sender { WKActionHandler * tokenHandler = [...啦 我们以加载本的一个HTML为例 NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]; WKWebView
来实现JS 与OC 的互相调用的。...WKWebView 下使用WebViewJavascriptBridge与UIWebView 大同小异。主要是示例化的类不一样,一些与webView 相关的API调用不一样罢了。 ?...WKWebView 下使用WebViewJavascriptBridge来实现JS 与OC 的互相调用,也是通过拦截URL来实现的。...下面开始介绍WKWebView 如何通过WebViewJavascriptBridge 来实现JS 与OC 的互相调用。...这里与上一篇文章有一些不同,WKWebView 使用的是WKWebViewJavascriptBridge,而UIWebView 使用的是WebViewJavascriptBridge。
常见问题 在 iOS 端做音视频相关 App 过程中咱们经常会遇到音频管理的相关问题,下面介绍一下 AVAudiosession 的基本使用,并结合使用腾讯云视频 TXLiteAVSDK 项目中碰到的一些问题场景实现分享...] setActive:YES error:nil]; 在 iOS 端使用 AVAudioSession 来管理音频,最简单的使用如上设置下音频模式,然后激活音频会话就可以了。...现实情况中不同的 App 场景各不相同,我们通过设置 AVAudioSession 音频会话的 category(模式)和 option(选项)来达到自己想要的效果。...AVAudioSession 音频问题 如何修改 TXLiteAVSDK 内部的 AVAudioSession 音频模式?...App音乐播放 TXLiteAVSDK 默认使用的播放模式是混合播放AVAudioSessionCategoryPlayback + AVAudioSessionCategoryOptionMixWithOthers
说起WKWebview代替UIWebview带来的好处你可以举出一堆堆的例子,但说到WKWebview的问题,你绕不过的就是WKWebview cookie和NSHTTPCookieStorage cookie...让我们跳脱原来的方案,重新审视下WKWebview cookie相关的资料。...WKWebview cookie是怎么存储的 会话级别的cookie 会话级别的cookie是保存在WKProcessPool里的,每个WKWebview都可以关联一个WKProcessPool的实例...可以读出来 WKWebview Cookie是如何工作的?...处理至此,大功告成,这样的后续请求,WKWebview都用自身所有的Cookie和NSHTTPCookieStorage的Cookie,这样既达到了Cookie共享的目的,WKWebview和NSHTTPCookieStorage
Gartner的分析师David Mitchell Smith和Forrester的分析师Paul Miller认为,未来十年中企业使用云计算的目的是通过新功能来提升自身运行速度与灵活性,对此金融服务、...云计算实施专家Amido的CTO Simon Evans看到各个领域的CIO都应用或计划使用边缘计算:“边缘与位置有关——你把东西放在哪里,使它们与云计算互补。”他认为,联网设备为企业增加了机会。...伦敦希思罗机场(Heathrow airport) CIO Stuart Birrell认为,对于希思罗这个英国最繁忙与最大机场来说,云能极大地帮助他们提升数据管理的水平,而更重要的是,它能从数据中提供洞察...那些需要理解结构与非结构化数据以帮助自身进行决策和分析的公司正在使用云供应商提供的嵌入式AI和ML来获得相应能力。 他预测,“2019年,这一趋势将继续扩大,主流企业会将AI纳入其数字战略中。”...Evans还看到企业在云的使用上已经成熟,他们从选择“主流云服务供应商”到“应用混合和多云环境,其中主体使用来自大型供应商的云:AWS、谷歌云或微软Azure”。
不错的文章 WKWebView WKWebView是现代 WebKit API 在 iOS 8 和 OS X Yosemite 应用中的核心部分。...如果你的app只需要支持iOS8.0之后的版本,那么非常建议你使用WKWebView来替代UIWbeView,性能不止提升了一个档次。...坑 关于wkwebivew中点击无响应的问题 WKWebView与js交互 所谓轻应用,简单的来说就是原生应用集成了html页面入口,还能通过js与native实现交互,例如:通过js调用native封装好的...viewController实现扫描与对应反馈功能。...,native截取对应的url,读取与web端定义的协议规则,可进行简单的通讯。
https://blog.csdn.net/u010105969/article/details/53942862 最近开发新功能,其中有加载网页的需求,而最近又了解到了WKWebView,说是耗内存小...、加载速度快、与JS的交互好。...因为需要与网页进行交互,而之前使用UIWebView发现与网页的交互并不是很好,于是这次决定使用WKWebView。...(需要多加载几次网页,才能加载到正确的数据) 在查阅相关资料后,发现在使用WKWebView的时候需要我们手动添加cookie到网页中。...在使用WKWebView的时候手动添加cookie: NSMutableDictionary *cookieDic = [NSMutableDictionary dictionary]; NSMutableString
实际上,Flutter与原生的混合开发,就分为两大类: Flutter工程里面包原生工程,即Flutter项目调用原生的某些功能 原生工程里面包含Flutter模块 上述这两大类都是可以实现的,技术层面没有任何问题...因为Flutter自身的定位就是一个独立的完整的应用程序,无论是从他的Widget命名还是从它的设计(比如有自己独立的渲染引擎)都可以看出来。...对于一些小型的或者新起的项目,使用Flutter工程包原生功能的这种方式还是比较合适的。...第2步,创建一个纯iOS原生项目 需要注意的是,FlutterModule和iOS原生工程要在同一个目录下 第3步,将FlutterModule与原生工程联系在一起 来到LavieiOSDemo...Flutter与原生端通信的三种方式 Flutter与原生端的通信,有三种不同类型的channel可以实现,如下: FlutterMethodChannel FlutterEventChannel
领取专属 10元无门槛券
手把手带您无忧上云