首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    WKWebView的使用与JS交互详细解读

    看网上关于它的博客也是有许多的了,从各个方面总结一下这个WKWebView看网上说它主要是为了和JS做好交互产生的,我们也会相应的尝试一下。就先从它基本的说起!...一:和UIWebView相比它的不同处 1:和JS更好的做交互,也支持H5的一些新特性 2:加载进度条(下面会演示) 3:性能高,加载变得更快更可靠 二:从加载一张网页开始 1:使用这个WKWebView...2.JS端调用alert时所传的数据可以通过message,打印message信息读取出JS端给你的信息。...// JS端调用alert时所传的数据可以通过message,打印message信息读取出JS端给你的信息。...// 在原生得到结果后,需要回调给JS,通过completionHandler 回调给JS // completionHandler 回调的参数和返回值都是空 -(void)webView:(WKWebView

    3.1K70

    浅谈iOS中WKWebView和UIWebView的清除缓存问题

    https://blog.csdn.net/u010105969/article/details/53943101 最近产品经理在验收项目,在验收过程中发现了一个问题:网页中的数据存在缓存。...网页中加载的是一张图片,在后台将加载的图片换掉的时候再在App中加载此网页,发现展示的图片还是之前的图片,并没有更新,而且多次重新加载网页显示的还是之前的图片,说明缓存很严重。...于是查阅资料进行缓存的清除。...先说说UIWebView中缓存的清除,代码只有一句:  [[NSURLCachesharedURLCache]removeAllCachedResponses]; 再说WKWebView中缓存的清除...注意:只有在iOS9之后WKWebView才有清除缓存的方法,在写代码的时候切记对系统版本进行判断。

    5.3K10

    WKWebView

    2,WKWebView拥有与Safari中相同的Nitro JavaScript引擎,大大提高了页面JS执行速度;但是UIWebView不支持Nitro JavaScript引擎,所以加载较慢。...5,WKWebView可以和JS直接互调函数,交互更方便;而UIWebView则需要依靠WebViewJavaScriptBridge第三方库来协助处理与JS的交互,实现起来较繁琐。...重新加载当前页面,如果可能,使用缓存验证条件执行端到端重新验证。 - stopLoading。停止加载当前页面所有资源。...重新加载当前页面,如果可能,使用缓存验证条件执行端到端重新验证。 - stopLoading。停止加载当前页面所有资源。...我们可以通过JSCore或者JSBridge来在native中执行JS代码,并且在JS中去回调Native的相关函数。 现在很火热的跨平台以及热修复技术,都是基于JS与Native通信来实现的。

    6K20

    iOS开发中的WKWebView与JS的交互

    /u010105969/article/details/53189934),可当时用来展示网页的控件是UIWebView,而在iOS8之后苹果推出了WKWebView,此控件也能用来显示网页,可与JS的交互却与...在点击前三个按钮的时候会调用方法: // 警告框 - (void)webView:(WKWebView *)webView runJavaScriptAlertPanelWithMessage:(NSString...如果点击第四个conform按钮会调用方法: // 确认框 - (void)webView:(WKWebView *)webView runJavaScriptConfirmPanelWithMessage...如果点击最后一个input按钮会调用方法: // 输入框 - (void)webView:(WKWebView *)webView runJavaScriptTextInputPanelWithPrompt...注意:在利用UIWebView展示网页的时候我们如果要想与JS进行交互那么我们就得获取JS代码中的方法名,而我们在使用WKWebView的时候就不用了。

    2.3K20

    WKWebView详解

    您可以使用WKWebView类来在应用程序中嵌入web内容,通过创建一个WKWebView对象,将其设置为视图,并发送一个请求来加载web内容。...重新加载当前页面 - (WKNavigation *)reload; 返回一个新的WKNavigation对象 是不带缓存的验证(对比reloadFromOrigin) 重新加载当前页面(带缓存的验证)...- (WKNavigation *)reloadFromOrigin; 如果可能的话使用cache-validating条件执行end-to-end重新验证 是带缓存的验证 停止加载当前网页中的所有资源...包括cookies,磁盘文件,内存缓存以及持久化数据如WebSQL,IndexedDB数据库,local storage。..., readonly, copy) NSString *displayName; Available Data Types 定义WKWebsiteDataRecord中可用的数据类型的字符串常量 磁盘缓存

    20.7K193

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

    在上篇文章中讲述了使用UIWebView拦截URL的方式来处理JS与OC交互。 由于UIWebView比较耗内存,性能上不太好,而苹果在iOS 8中推出了WKWebView。...同样的用WKWebView也可以拦截URL,做JS 与OC交互。关于WKWebView与UIWebView的对比,大家请自动百度或者google。...除了代理方法和WKWebView的使用不太一样,关于WKWebView更详尽的讲解和用法,还是自行搜索学习,本文重点还是讲解如何实现JS 与OC 互相调用。...方法 JS 调用OC 方法后,有的操作可能需要将结果返回给JS。...这时候就是OC 调用JS 方法的场景。 WKWebView 提供了一个新的方法evaluateJavaScript:completionHandler:,实现OC 调用JS 等场景。

    3.6K50

    WKWebView的使用

    WKWebView的使用 前言 最近项目中的UIWebView被替换为了WKWebView,因此来总结一下WKWebView的使用。...示例Demo:WKWebView的使用 本文将从以下几方面介绍WKWebView: 1、WKWebView涉及的一些类 2、WKWebView涉及的代理方法 3、网页内容加载进度条的实现 4、JS...后,会发现字体小了很多,这应该是WKWebView与html的兼容问题,解决办法是修改原网页,要么我们手动注入JS NSString *jSString = @"var meta = document.createElement...JS方法,设置处理接收JS方法的代理,代理遵守WKScriptMessageHandler,实现捕捉到JS消息的回调方法,详情可以看第一步中对这两个类的介绍。...OC调用JS //OC调用JS changeColor()是JS方法名,completionHandler是异步回调block NSString *jsString = [NSString

    3K61

    WKWebView 那些坑

    无奈之下,我们只能约定一个JS接口,让游戏开发商实现该接口,具体是通过 canvas getImageData()方法取得图片数据后返回 base64 格式的数据,客户端在需要截图的时候,调用这个JS接口获取...退出的时候,JS刚好执行了window.alert(), alert 框可能弹不出来,completionHandler 最后没有被执行,导致 crash;另一种情况是在 WKWebView 一打开,...JS就执行window.alert(),这个时候由于 WKWebView 所在的 UIViewController 出现(push或present)的动画尚未结束,alert 框可能弹不出来,completionHandler...另一个 crash 发生在 WKWebView 退出前调用: -[WKWebView evaluateJavaScript: completionHandler:] 执行JS代码的情况下。...8.2、goBack API问题 WKWebView 上调用 -[WKWebView goBack], 回退到上一个页面后不会触发window.onload()函数、不会执行JS。

    4.7K130

    WKWebView 那些坑

    无奈之下,我们只能约定一个JS接口,让游戏开发商实现该接口,具体是通过canvas getImageData()方法取得图片数据后返回base64格式的数据,客户端在需要截图的时候,调用这个JS接口获取...退出的时候,JS刚好执行了window.alert(), alert框可能弹不出来,completionHandler最后没有被执行,导致crash;另一种情况是在WKWebView一打开,JS就执行window.alert...另一个crash发生在WKWebView退出前调用 -[WKWebView evaluateJavaScript:completionHandler:] 执行JS代码的情况下。...WKWebView退出并被释放后导致completionHandler变成野指针,而此时javaScript Core还在执行JS代码,待javaScript Core执行完毕后会执行completionHandler...8.2、goBack API问题 WKWebView上调用 -[WKWebView goBack], 回退到上一个页面后不会触发window.onload()函数、不会执行JS。

    17.5K21
    领券