WKWebView 是IOS8新增的 Web浏览视图

长处:   载入速度  比UIWebView提升差点儿相同一倍的, 内存使用上面,反而还少了一半。

缺点:   WKWebView 不支持缓存 和   NSURLProtocol 拦截了

我建议假设对缓存不高的页面能够使用。用户体验会提高非常多。

因为项目中曾经都是用 UIWebView  并且还要兼容 IOS8  之前的机子。  所以  我创建了一个新类  IMYWebView   你仅仅要全局替换 UIWebView 就能无缝升级到 WKWebView 啦

IMYWebView.h 中的API 会在内部自己主动支持 UIWebView 和 WKWebView。

title,estimatedProgress 是我觉得 WKWebView 中比較实用的新增API

@interface IMYVKWebView : UIView///使用UIWebView
- (instancetype)initWithFrame:(CGRect)frame usingUIWebView:(BOOL)usingUIWebView;@property(weak,nonatomic)id<IMYVKWebViewDelegate> delegate;///内部使用的webView
@property (nonatomic, readonly) id realWebView;
///是否正在使用 UIWebView
@property (nonatomic, readonly) BOOL usingUIWebView;
///预估网页载入进度
@property (nonatomic, readonly) double estimatedProgress;@property (nonatomic, readonly) NSURLRequest *originRequest;///back 层数
- (NSInteger)countOfHistory;
- (void)gobackWithStep:(NSInteger)step;///---- UI 或者 WK 的API
@property (nonatomic, readonly) UIScrollView *scrollView;- (id)loadRequest:(NSURLRequest *)request;
- (id)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL;@property (nonatomic, readonly, copy) NSString *title;
@property (nonatomic, readonly) NSURLRequest *currentRequest;
@property (nonatomic, readonly) NSURL *URL;@property (nonatomic, readonly, getter=isLoading) BOOL loading;
@property (nonatomic, readonly) BOOL canGoBack;
@property (nonatomic, readonly) BOOL canGoForward;- (id)goBack;
- (id)goForward;
- (id)reload;
- (id)reloadFromOrigin;
- (void)stopLoading;- (void)evaluateJavaScript:(NSString *)javaScriptString completionHandler:(void (^)(id, NSError *))completionHandler;
///不建议使用这个办法  由于会在内部等待webView 的运行结果
- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)javaScriptString __deprecated_msg("Method deprecated. Use [evaluateJavaScript:completionHandler:]");///是否依据视图大小来缩放页面  默觉得YES
@property (nonatomic) BOOL scalesPageToFit;@end

代码地址

UIWebView 无缝切换到 WKWebView相关推荐

  1. wkwebview替换uiwebview_UIWebView完美切换至WKWebView

    UIWebView完美切换至WKWebView发布日期:2018-6-10 来源:csdn [关闭] iOS8之后,苹果推出了WebKit这个框架,用来替换原有的UIWebView,新的控件优点多多, ...

  2. 是否存在两台 MacOS 之间无缝切换的办法?

    可能是奢望,不过万一实现了呢? 假设我有一台 Mac mini 和一台 Macbook Pro,大多数时候我会在 Mac Mini 上开发.但是偶尔坐累了(站累了)我想拿起 MacBook Pro 躺 ...

  3. 网易云游戏来了:手机电脑电视随时接入可玩,高流畅度低延迟,还能跨终端无缝切换...

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 允中 发自 凹非寺 量子位 报道 | 公众号 QbitAI 囿于版号的游戏行业,终于快 ...

  4. 安卓蓝牙键盘按键映射_多设备无缝切换 雷柏XK100无线蓝牙轻薄键盘评测

    对于现代办公用户来讲,肯定很多人会遇到像我一样的问题,那就是桌面上除了笔记本电脑之外,还有平板.手机等设备,而且这三个设备没办法整合到一块屏幕上,每当需要切换设备进行文字输入的时候,就会浪费很多的时间 ...

  5. 切换终端_首款搭载鸿蒙系统的终端来了:配自研芯片,能跟手机无缝切换

    功能类似于互联网智能电视的荣耀智慧屏正式发布. 8月10日下午,广东东莞篮球中心,荣耀发布了首款搭载华为鸿蒙OS操作系统的智能终端--荣耀智慧屏. 前一天,华为刚刚发布了自研的操作系统鸿蒙OS,这是华 ...

  6. vuefullcalendar怎么判断切换上下月_房间太多、楼上楼下,终极解决家里wifi信号无缝切换问题...

    相信不少人有我一样的烦恼,房间太多,或者楼上楼下,家里的wifi信号总是不能无缝切换.路由器放在配电箱,除了客厅信号不错外,一旦到了其他房间,掉线.网速慢等问题让人很苦恼.特别是和小伙伴一起玩游戏一边 ...

  7. bootstrap轮播图 原点变为方块_JS实现无缝切换轮播图(自动+手动)

    一.背景 说起轮播图,大家应该都不陌生,各大购物网站和面试题里都能看到它的身影. 实现上也并不困难,而写这篇文章是想整理一下自己心血来潮写的代码,以及实现过程中的一些思考,大家也可以顺便复习巩固一下. ...

  8. android无缝切换播放器,android 视频 无缝切换 无缝播放 surfaceview

    android 视频 无缝切换 无缝播放 surfaceview 最近做一个app,其中有一个控件要不断的播放视频,切换视频,然后遇到每次切换视频都会黑屏一会. baidu,google没有找到有效的 ...

  9. Zabbix高可用,实现zabbix的无缝切换,无故障时间

    作者:骚年有梦 联系方式:lianglian8866@163.com zabbix高可用设计目标: 1.keepalived服务优先级选择切换机制:对于zabbix服务器来说,只要zabbix存活和m ...

  10. jquery 图片无缝切换

    想要和园友分享一下学习jquery的经验.总结,更希望园友提出点建议. 第一次写,有不好的地方请多多见谅! 文笔有限,很多时候不知道怎么来描述,唉.硬伤啊!!那只好多做了,贴代码... ok,废话少说 ...

最新文章

  1. ADB 查看 crash log
  2. Unity学习笔记(5):动态加载Prefab
  3. 批量部署虚拟机实战解析
  4. unity控制程序等待_Unity 中的协同程序
  5. Linux下磁盘阵列raid
  6. Apache Flink ML 2.0.0 发布公告
  7. mysql monitor怎么用_MySQL 监控工具 mysql-monitor 详解
  8. 1.4 Documents,Fields和Schema设计--目录
  9. VUE实现市、区二级联动
  10. 2015/7/28(总结昨天抄底操作失败-割肉自保)
  11. Word文档生成神器:开源项目poi.tl使用介绍
  12. java ()括號_Java提取中括號中的內容
  13. 计算机考研复试面试问题总结和回答
  14. 2017常见android面试题
  15. 如何计算2个矩阵的相似性?
  16. Python一亿以内的素数个数_Python编程100例(上)
  17. 7-1 求一元二次方程的根 (20 分)
  18. 四川岳池2021年高考成绩查询,2021年岳池中学升学率高不高?
  19. 怎么把好几行弄成一行_【excle 如何多行变一行】excel中怎么把多行同一个人的数据变成一行?...
  20. MATLAB基础(一):MATLAB概述

热门文章

  1. 关于SVM参数cg选取的总结帖[matlab-libsvm]
  2. android studio | openGL es 3.0增强现实(AR)开发汇总
  3. 在linux centos中加入中文输入法
  4. 计算机组成原理完整学习笔记(一):计算机系统概论
  5. Nessus高级使用研究
  6. Spring Security配置放行请求,将参数放置于请求体时放行失效
  7. Raki的读paper小记:Simplify the Usage of Lexicon in Chinese NER
  8. 一些抄来的冷知识...
  9. 关于@synchronized
  10. 20165223 《JAVA程序设计》第三周学习总结