博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UIWebView 无缝切换到 WKWebView
阅读量:5164 次
发布时间:2019-06-13

本文共 1895 字,大约阅读时间需要 6 分钟。

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
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

转载于:https://www.cnblogs.com/yfceshi/p/7008769.html

你可能感兴趣的文章
onlevelwasloaded的调用时机
查看>>
求出斐波那契数组
查看>>
lr_start_transaction/lr_end_transaction事物组合
查看>>
CodeIgniter学习笔记(四)——CI超级对象中的load装载器
查看>>
.NET CLR基本术语
查看>>
ubuntu的home目录下,Desktop等目录消失不见
查看>>
建立,查询二叉树 hdu 5444
查看>>
[Spring框架]Spring 事务管理基础入门总结.
查看>>
2017.3.24上午
查看>>
Python-常用模块及简单的案列
查看>>
LeetCode 159. Longest Substring with At Most Two Distinct Characters
查看>>
基本算法概论
查看>>
jquery动态移除/增加onclick属性详解
查看>>
JavaScript---Promise
查看>>
暖暖的感动
查看>>
Java中的日期和时间
查看>>
Django基于admin的stark组件创建(一)
查看>>
抛弃IIS,利用FastCGI让Asp.net与Nginx在一起
查看>>
C. Tanya and Toys_模拟
查看>>
springboot jar包运行中获取资源文件
查看>>