首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

https://blog.csdn.net/u010105969/article/details/53943101 最近产品经理在验收项目,在验收过程中发现了一个问题:网页中的数据存在缓存。...网页中加载的是一张图片,在后台将加载的图片换掉的时候再在App中加载此网页,发现展示的图片还是之前的图片,并没有更新,而且多次重新加载网页显示的还是之前的图片,说明缓存很严重。...于是查阅资料进行缓存的清除。...先说说UIWebView中缓存的清除,代码只有一句:  [[NSURLCachesharedURLCache]removeAllCachedResponses]; 再说WKWebView中缓存的清除...        [[NSFileManagerdefaultManager]removeItemAtPath:cookiesFolderPatherror:&errors];     } 增加内容: 使用UIWebView

5.3K10

iOS引入JavaScriptCore引擎框架(二)

我尝试过,并没有WebFrameLoadDelegate这个对象,看来iOS中的WebKit框架并未提供UIWebView这么多的接口,但是有些人通过WebKit的源码还是发现了一二,他就是Nick Hodapp...其次,我们既然获取到了JSContext,但是并不知道JSContext与UIWebVIew的对应关系,我们的ViewController中可能会有多个UIWebView,如何将获取的JSContext...这样,我们可以在UIWebView的webViewDidStartLoad和webViewDidFinishLoad之间获取到JSContext,进行oc和js的双向通信。...js引擎的方式)来完成oc和js的通信将更为流行,尽管目前apple提供的针对jsc的开发接口文档几乎没有,但是我们通过webkit的源码做一些hack的方式也不是不可以,毕竟只要UIWebView仍然使用...我们有理由憧憬未来在iOS和android下更方便的集成js引擎来完成建议的双向通信。

1.5K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    iOS学习巩固笔记-UIWebViewJavaScript

    1 UIWebView简介 UIWebView是iOS内置的浏览器控件 系统自带的Safari浏览器就是通过UIWebView实现的 UIWebView不但能加载远程的网页资源,还能加载绝大部分的常见文件...*)webView; 请求完毕(加载数据完毕)时调用这个方法 - (void)webViewDidFinishLoad:(UIWebView *)webView; 请求错误时调用这个方法 - (void...OC里面有通过字符串生成SEL类型的方法,所以当拿到数据之后做下面的事情 截取方法的名称 将截取出来的字符串转换为SEL 利用performSelect方法来调用SEL 涉及到的相关方法 //判断字符串是否以一个固定的字符开头...(任意调用对象消息方法并可以传N多参数的一个类) 在iOS中可以直接调用某个对象的消息方式有两种: performSelector:withObject; NSInvocation。...,那么就用谁来进行创建 //注意:签名一般是用来设置参数和获得返回值的,和方法的调用没有太大的关系 NSMethodSignature *signature = [ViewController

    1.2K70

    Hybrid App 应用 开发中 9 个必备知识点复习(WebView 调试 等)

    参考文章:《UIWebView与WKWebView》 UIWebView 是苹果继承于 UIView 封装的一个加载 web 内容的类,它可以加载任何远端的web数据展示在你的页面上,你可以像浏览器一样前进后退刷新等操作...不过苹果在 iOS8 以后推出了 WKWebView 来加载 Web,并应用于 iOS 和 OSX 中,它取代了 UIWebView 和 WebView ,在两个平台上支持同一套 API。...它脱离于 UIWebView 的设计,将原本的设计拆分成14个类,和3个代理协议,虽然是这样但是了解之后其实用法比较简单,依照职责单一的原则,每个协议做的事情根据功能分类。...但是目前 IOS10 以下的系统以及很少了, 小结: WKWebView 相较于 UIWebView 在整体上有较大的提升,满足 iOS 上面使用同一套控件的功能,同时对整个内存的开销以及滚动刷新率和...如果调试的是 H5 页面,可以直接在手机的 Safari浏览器 打开直接调试。 下面开始说说在 Mac 上如何调试: 1.

    3.2K00

    IOS隐藏键盘

    最近遇到二个键盘会自动弹出的问题: 1、UIWebView加载网页后,点击网页内的链接在UIWebView内进行跳转时,键盘自动弹起; 2、调用选择照片时,iPod上选择照片后也会自动弹出键盘,比如从图库进到具体某个文件夹内...,或者再返回图库,直接点中照片然后编辑的时候,都会自动弹出; 问题一是这样处理的 - (void)webViewDidStartLoad:(UIWebView*)webView {     [activityIndicatorView...UIWebView的透明设置,只需要增加二个属性 webView_.opaque = NO; webView_.backgroundColor = [UIColor clearColor]; 第二个问题的处理方案是...sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil]; } 因为接触ios也不算特别多,...暂时就使用了上述的方法来处理了。

    1.3K20

    UIWebView 浏览器控件一、初始化与三种加载方式二、常用属性和方法三、代理方法 UIWebViewDelegate四、其它案例:

    WebView的优缺点: 优点:(1)跨平台(2)发布更新快(3)排版布局能力强 缺点:(1)性能差(2)数据通讯复杂(3)耗费流量 使用场景:(1)排版复杂的内容(2)需后台灵活控制的界面...一、初始化与三种加载方式 UIWebView继承于UIView,因此,其初始化方法和一般的view一样,通过alloc和init进行初始化,其加载数据的方式有三种: 1.第一种: - (void)loadRequest...二、常用属性和方法 属性: 1.设置webView的代理 @property (nonatomic, assign) id delegate; 2.内置的scrollView...(3)如何获取网页的所有源代码, 实现代码如下 : NSString *js = @"document.getElementsByTagName('html')[0].outerHTML"; NSString...更加接近native(原生) 某些情况下,我们既想要UIWebView加载web页面,又想使得所加载的页面的外观和操作行为更加接近native感觉。

    1.5K60

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

    在上篇文章中讲述了使用UIWebView拦截URL的方式来处理JS与OC交互。 由于UIWebView比较耗内存,性能上不太好,而苹果在iOS 8中推出了WKWebView。...除了代理方法和WKWebView的使用不太一样,关于WKWebView更详尽的讲解和用法,还是自行搜索学习,本文重点还是讲解如何实现JS 与OC 互相调用。...2.WKWebView的代理有两个navigationDelegate和UIDelegate。我们要拦截URL,就要通过navigationDelegate的一个代理方法来实现。...代表允许加载,相当于UIWebView的代理方法中 return YES的情况。...关于如何区分执行不同的OC 方法,也与UIWebView的处理方式一样,通过URL 的host 来区分执行不同的方法: #pragma mark - private method - (void)handleCustomAction

    3.6K50

    IOS开发系列——UIWebView专题【整理,部分原创】

    其解决方法需要Javascript和navtive code一起来做,其基本原理可参考这片文章,其流程是在Javascript handler中每创建Ajax的请求时,需要将这段js存在ajax_handler.js...部分内容参考于stackoverflow 2.1.4UIWebView载入带有锚点(anchor)的URL时存在的问题及解决办法 UIWebView载入带有锚点(anchor)的URL时存在的问题及解决办法...,当页面高度超过屏幕高度时,如果页面顶部和初始加载时的位置不同(进行过滚动),则每次添加高亮,页面就重新跳到初始加载时的位置,而不是保持当前位置。...在PC浏览器上尝试并没有出现这种问题,因此猜测是可能是UIWebView自身的原因。...PS:如果UIWebView加载的URL不带锚点,是不会出现上述问题的。

    94240

    苹果已经不再接收含UIWebView API的新App送审

    将强制开发者升级WKWebView 带有UIWebView Api更新App,会收到类型下面的警告: 更新使用 WebView的应用程序 2019年12月23日 如果您的应用程序仍然使用被废弃的 UIWebView...API 嵌入 Web 内容,我们强烈建议您尽快更新到 WKWebView,以提高安全性和可靠性。...而且它在 iOS 和 macOS 以及 Mac Catalyst 中都支持。...您好,因苹果公司关于APP使用UIWebview的上架规定(2020年5月起上架的新APP中不允许使用,5月之前上架过的APP在12月30号之后不允许使用),实人认证产品SDK目前依赖了UIWebview...,预计2020年6月初去除,如果您是全新APP上架苹果应用商店,建议集成2020年6月份的实人认证SDK后再上架,否则会影响APP上架,l感谢您的理解和支持,给您带来的不便,敬请谅解!

    1.7K30

    iOS下JS与OC互相调用(一)--UIWebView 拦截URL

    (这里分为UIWebView 和 WKWebView两种,去年因为还要兼容iOS 6,所以没办法只能采用UIWebView来做。) 2.利用WKWebView 的MessageHandler。...写的比较粗糙,因此准备新开一个目录专题来记录JS 与原生交互的处理方式。只是记录JS与OC交互的多种方式,大家可以根据实际情况和场景选择适合自己的方式。...因为就相互调用的接口使用的非常少啊,就那么三两个,完全没必要使用牛刀啊。 ? UIWebView 拦截URL 我之前就使用的是UIWebView + 拦截URL 的方式实现的JS与OC 交互。...loadURL的实现来自关于UIWebView和PhoneGap的总结一文。 2.为什么loadURL 中的链接,使用统一的scheme?...所有的参数都在URL的query中,先通过&将字符串拆分,在通过=把参数拆分成key 和实际的值。

    3.6K40

    Flutter 与 iOS 原生 WebView 对比

    测试手机:iPhoneX 系统:iOS12.0 加载速度对比 测试网页打开的速度,只需要获取 WebView 在开始加载网页和网页加载完成时的时间戳,时间戳的差即为打开网页的时间。...在这里,笔者又加了一个测试,尝试记录从 viewController 的 viewDidLoad 到 webview 的 didFinish 时间,测试了新浪的数据,如下: UIWebViewA: 4970...,不过即使按照 UIWebViewB 的数据来比较,也是 wkWebView 略胜一筹。...flutter 里使用的就是 WK,所以和原生的 WKWebView 一样都是 444 分,比 UIWebView 的 437 略胜一筹。...是比UIWebView更好的选择,推荐使用; flutter_webView_plugin:在iOS中使用的就是原生的WKWebView,所以总体和 native WKWebView 表现差不多。

    1.6K20

    UIWebView的使用与总结

    hh.jpeg 先前在项目中使用了UIWebView 在项目中一些比较复杂的UI布局、需后台灵活控制的界面、原网页,可以考虑UIWebView 在用它之前跟大家说下它的优缺点 优点: 可跨平台...发布更新快 在服务器端发布,能够实时更新终端展示,便于快速升级以及紧急修复bug 排版布局能力强 强大的HTML+CSS让人膜拜 缺点: 性能 相对于原生的app来说,使用UIWebView...的app相对来说性能会低一点, 用户的体验度也会大打折扣 数据通讯复杂UIWebView与App之间进行数据通讯只能通过javascript或 UIWebViewDelegate来进行,客户端想传参数给...UIWebView修改网页或 者从网页中获取数据都比较复杂。...具体的操作如下 更多经验请点击 UIWebView的常规使用方法: //加载网页或者本地文件 - (void)loadRequest:(NSURLRequest *)request;//直接加载

    58130

    吸顶效果解决方案

    页面向下滚动超过吸顶元素初始位置时,把吸顶元素固定在顶部 要求吸顶的元素一般是二级导航栏、搜索框、文章标题栏(h1)、表头(thead)、tab条等等,共同特点是在内容或功能上比较重要,但又不是最重要的元素...IOS 8+的Safari和WKWebView能够疯狂触发scroll,无论手指在不在屏幕上,无论是不是惯性滚动期间。...但IOS 8+的UIWebView,scroll限制还在 如果要支持IOS 8-设备以及任意IOS版本的UIWebView,此路不通,忘掉scroll sticky 虽然scroll方案行不通,但IOS...static能为后代元素提供定位参照),但top和left无效 滚过初始位置时,和position: fixed表现类似,top和left生效,固定在屏幕可见区域,但页面不会抖动,原本占据的空间还在(自带守家占位符的感觉...CSS sticky并不能解决这个问题 笔者还没有找到合适的解决方案,目前方案是牺牲tab浏览状态独立性,多tab共用body的滚动条,切换tab时滚回之前的位置。

    3.6K10

    iOS小技能:UIWebView 被拒的解决方案(用更安全的WKWebView替代UIWebView)

    引言 背景:202012之后苹果将不接受使用UIWebView UIWebView 被拒的解决方案:使用WKWebView替代UIWebView 1、查 SDK是否用 UIWebView 的 API...2、移除/升级含UIWebView的第三方SDK(例:AFNetworking) 3、使用WKWebView替代UIWebView 4、WKWebView与JS交互案例(点击页面图片,调用iOS方法进行图片放大显示...、NSURLSession 和 UIWebView 中的请求; 对于 WKWebView 中发出的网络请求也无能为力,如果真的要拦截来自 WKWebView 中的请求,还是需要实现 WKWebView...I 使用WKWebView替换UIWebView 1.1 移除/升级包含UIWebView的第三方SDK(grep -r "UIWebView" .) ➜ retail git:(develop)...1.2 移除/替换自己项目使用UIWebView API的代码 自己是否用了该 API 只需要在 Xcode 中全局搜索即可 II 升级包含UIWebView的第三方SDK的具体例子 pod

    3.3K20

    IOS WebView控件详解

    概述 WebView就是一个内嵌浏览器控件,在iOS中主要有两种WebView:UIWebView和WKWebView,UIWebView是iOS2之后开始使用,WKWebView是在iOS8开始使用,...,因此,其初始化方法和一般的view一样,通过alloc和init进行初始化。...其加载数据的方式有三种: 第一种: - (void)loadRequest:(NSURLRequest *)request; 这是加载网页最常用的一种方式,通过一个网页URL来进行加载,这个URL可以是远程的也可以是本地的...*)webView didFailLoadWithError:(NSError *)error; UIWebView和JavaScript交互 UIWebView和JavaScript的交互主要涉及两个方面...使用上和UIWebView用法大体一致,主要是新增和优化了一些方法。 例如,使用WKWebView加载百度首页。

    4.9K80

    【iOS开发】从 UIWebView 到 WKWebView

    ② UIWebView 和 WKWebView 的区别 WKWebView 更快(占用内存可能只有 UIWebView 的1/3~1/4),没有缓存,更为细致地拆分了 UIWebViewDelegate...③为什么现在是时候从 UIWebView 迁移到 WKWebView 了: 截止到我写这篇文章的时候,据 mixpanel 的数据,iOS 9 占有率已达 58.55%,iOS 8 占有率达到了 34.78%...所以从现在开始,再开发 App 只兼容 iOS 8 和 iOS 9 两个版本就可以了(如果你的产品对覆盖率要求不是很苛刻的话)。...WKWebView 是 iOS 8 之后才有的 WebKit 中的内容,所以之前我们要同时兼容 iOS 7 和 iOS 8 的时候,可以推辞说 UIWebView 和 WKWebView 一起做太麻烦了...然而,我们如何拿到从 WKWebView 中抓取到的文本呢(通过 document.body.innerText 这一句)?

    1.8K20

    Hybrid App 应用开发中 9 个必备知识点复习

    不过苹果在 iOS8 以后推出了 WKWebView 来加载 Web,并应用于 iOS 和 OSX 中,它取代了 UIWebView 和 WebView ,在两个平台上支持同一套 API。...它脱离于 UIWebView 的设计,将原本的设计拆分成14个类,和3个代理协议,虽然是这样但是了解之后其实用法比较简单,依照职责单一的原则,每个协议做的事情根据功能分类。...无法发送 POST 参数问题; WKWebView 可以和js直接互调函数,不像 UIWebView 需要第三方库 WebViewJavascriptBridge 来协助处理和 js 的交互; 注意...但是目前 IOS10 以下的系统以及很少了, 小结: WKWebView 相较于 UIWebView 在整体上有较大的提升,满足 iOS 上面使用同一套控件的功能,同时对整个内存的开销以及滚动刷新率和...如果调试的是 H5 页面,可以直接在手机的 Safari浏览器 打开直接调试。 下面开始说说在 Mac 上如何调试: 1.

    2.3K30

    判断js引擎是javascriptCore或者v8

    来由   纯粹的无聊,一直在搜索JavaScriptCore和SpiderMonkey的一些信息,却无意中学习了如何在ios的UIWebView中判断其js解析引擎的方法: if (window.devicePixelRatio...js端代码的执行;     3)通过1)的流程可看出,通过UIWebView实现的bridge机制性能堪忧,交互蛋疼;     4)通过UIWebView执行js代码段,有几点限制:由于ios并未给予我们通过...引擎并在js,oc两层搭建桥接层,并且每层持有2份相同的配置表,每个表中都记录js,oc透出的API,并结合iOS的事件机制完成oc和js的互调;第三种则仍是采用iOS7内置的javascriptCore...,但是如果要采用RN的方案可能需要更多时间来搞清楚具体的实现细节和技巧,难度略大;第三种则是比较而言比较无害而且实现难度并不算大的方案,目前尚妆iOS下只适配iOS7以上的设备,因此我们不需要针对iOS6...及以下设备做兼容(引入第三方的javascriptCore),而且通过使用内置的js引擎和oc进行通信,在c/c++层面的效率将会大大提高(相比较UIWebview而言),缺点则是可能目前采用的bridge

    3.4K50
    领券