相比UIWebView,WKWebView做了如下优化: WKWebView更多的支持HTML5的特性 WKWebView更快,占用内存可能只有UIWebView的1/3 ~ 1/4 WKWebView...// 5.最后将webView添加到界面 [self.view addSubview:webView]; self.webView = webView; } 第二种: - (void)loadHTMLString...error:NULL]; // 加载本地HTML字符串 [self.webView loadHTMLString...string为要加载的本地HTML字符串 baseURL用来确定htmlString的基准地址,相当于HTML的标签的作用,定义页面中所有链接的默认地址 */ - (void)loadHTMLString...加载方法 /*加载请求*/ - (WKNavigation *)loadRequest:(NSURLRequest *)request; /*加载本地HTML字符串*/ - (WKNavigation *)loadHTMLString
一、WKWebView的使用: 1、初始化 webView初始化:WKPreferences, WKUserContentController -> WKWebViewConfiguration ->... WKWebView 这里添加了三个代理,代理方法会在下面实现。...navigationItem.leftBarButtonItems = btns } 最后是load let request = URLRequest(url: self.url) webView.load(request) // 不能用 webView.loadHTMLString...decisionHandler(.allow) // .allow or .calcel } // MARK: - 服务器重定向 func webView(_ webView: WKWebView...是因为加载网页的方法用的不对: 我用了: webView.loadHTMLString(_ string: String, baseURL: URL?)
,不做深究 WKWebView是iOS8中推出的,算是UIWebVeiw的升级版。... 创建个WebView的对象 WKWebView *webView = [[WKWebView...使用loadHTMLString,loadData都不可以. 7....这里解决的方法是通过使用 WKWebView 的方法。...runJavaScriptConfirmPanelWithMessage,WKWebView 和 UIWebView都继承自 UIView,但是奇怪的是,我是用WKWebView 里面的方法解决了UIWebView
UIWebView自iOS2就有,WKWebView从iOS8.0(2014年9月WWDC)才有,毫无疑问,WKWebView相对UIWebVIew要优秀得多,主要表现在以下几点: 1,WKWebView...以上介绍了WKWebView的优点,但是其也有以下缺点: 1,WKWebView需要iOS9及更高的版本,虽然WKWebView是在iOS8之后引入的,但是iOS8的版本存在重大限制,比如无法访问本地存储的文件...WKWebView的用法 ? WKWebView API WKWebView对象可以显示交互式Web内容,例如应用内浏览器。你可以使用WKWebView类将web内容嵌入到你的应用程序中。...然后就可以通过 - loadHTMLString:baseURL: 方法或者 - loadRequest: 方法加载网页内容。...- loadHTMLString:baseURL:。设置网页内容和baseUrl loading。布尔值,显示当前页面是否正在加载。 - reload。重新加载当前页面。
下面小编就以iOS版本的在线教育平台开发为例,来说明下,如何使用WKWebView来实现图片排列。 一、先创建一个wkwebview - (WKWebView *)wkWebV{ if (!..._wkWebV) { _wkWebV = [[WKWebView alloc]initWithFrame:CGRectMake(0, 0, _window_width, _window_height...important;} “; //把CSS和img标签拼接 htmlStr = [htmlStyle stringByAppendingString:htmlStr]; //使用WKWebview...加载HTMLSting [_wkWebV loadHTMLString:htmlStr baseURL:nil]; } 以上就是在线教育平台开发中,如何使用WKWebView来实现作业功能中的图片排列效果
WKWebView API WKWebView的头文件声明: // webview 配置,具体看下面 @property (nonatomic, readonly, copy) WKWebViewConfiguration...allowingReadAccessToURL:(NSURL *)readAccessURL NS_AVAILABLE(10_11, 9_0); // 直接加载HTML - (nullable WKNavigation *)loadHTMLString...// 这个是决定是否Request - (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction...*)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration...*)frame completionHandler:(void (^)(void))completionHandler; // 调用JS的confirm()方法 - (void)webView:(WKWebView
在开发iOS版的直播卖货系统源码过程中,如何在html上展示商品详情,下面小编将从WKWebView入手,来介绍下实现过程。...1、创建WKWebview - (WKWebView *)webView{ if (!..._webView) { _webView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 0, _window_width, _backScrollView.height...user-scalable=0\" name=\"viewport\">"; description = [aaa stringByAppendingString:description]; [_webView loadHTMLString...:description baseURL:nil]; 3、在WKWebView加载完成的代理方法中更改webView的frame - (void)webView:(WKWebView *)webView
1.1 原理 1.2 源码 1.3 核心代码 2.1 iOS12之前使用UIWebView 2.2 iOS12之后采用WKWebView 3.1 html转换为富文本 3.2 富文本转换为html 前言...1.1 原理 使用[_webView loadHTMLString:html baseURL:baseURL]; 进行代码加载 - (void)viewDidAppear:(BOOL)animated...NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil]; [_webview loadHTMLString
创建WKWebView lazy var webView: WKWebView = { // 创建WKPreferences let preferences = WKPreferences...(self, name: "callbackHandler") // 创建WKWebView var webView = WKWebView(frame: self.view.frame...WKWebView调用JS: func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!)...JS调用WKWebView: func userContentController(_ userContentController: WKUserContentController, didReceive...) title = "WebView与JS交互" view.addSubview(webView) webView.loadHTMLString
前言 由于目前UIWebView 已经被抛弃了,因此推荐使用WKWebView的WKScriptMessageHandler实现iOS与JS交互 WKWebView是Apple在iOS8推出的Webkit...WKWebView在每次加载请求完成后会调用此方法 (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation...title: [_webView stringByEvaluatingJavaScriptFromString:@"document.title"]; #endif III 加载本地HTML文件 loadHTMLString4WkWebView...[NSString alloc]initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil]; [_webView loadHTMLString...WKWebView 这么做是为了可以让 iOS 上的 WebView 滚动有更流畅的体验。
WKWebView主要涉及到以下类或协议,各部分可能互相依赖,文章按照apple文档的划分对每一个模块进行了详细的解释 WKWebView 配置和偏好 WKWebViewConfiguration WKPreferences...一个WKWebView对象显示交互式的web内容,比如在应用程序内的浏览器。...您可以使用WKWebView类来在应用程序中嵌入web内容,通过创建一个WKWebView对象,将其设置为视图,并发送一个请求来加载web内容。...使用 initWithFrame:configuration: 方法来创建WKWebView对象; 使用 loadHTMLString:baseURL: 方法来加载本地HTML文件; 使用 loadRequest...设置网页的内容和基础URL - (WKNavigation *)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL; string是网页的内容
根据需求需要将老项目中的 WebView 替换成 WKWebView,期间查阅了不少文档和资料,之前也发布了几篇 WKWebView 相关的优秀文章。...WKWebView 几个不常用的特性 WKWebview 加载过程中的性能指标图解 WKWebview 秒开的实践及踩坑之路 今天分享的这篇文章全面的介绍了 WKWebView,作者根据开发和使用经验从属性...NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:url]]; // 直接加载H5数据 // [wk loadHTMLString...baseURL:nil]; [wk loadData:data MIMEType:@"text/html" characterEncodingName:@"UTF-8" baseURL:nil]; loadHTMLString...通过 [WKWebView loadData:] 和 [WKWebView loadHTMLString:] 方法仅能加载当前HTML内容,无法加载资源文件,这种加载模式下,由于不需要访问其他路径下的资源
今天,我们谈一谈iOS的载体“WKWebView”,有兴趣的朋友可以直接阅读:https://developer.apple.com/reference/webkit/wkwebview ,当然你也可以接着往下看...self.wkWebView?....loadHTMLString(html, baseURL: URL(string: "https://github.com/icepy")) 说到JavaScript交互比较重要的地方是需要实现“WKScriptMessageHandler...print("\(jsonString)") self.wkWebView?....我们知道WKWebView是一个独立的进程,它的请求都不经过系统的URL SYSTEM,我们很难拦截它,该怎么办?
在UIWebView下,可以使用 [[NSURLCache sharedURLCache] removeAllCachedResponses];//清除缓存 WKWebView清除cookies的方法...cookies]) { NSLog(@"%@", cookie); } 参考链接:http://stackoverflow.com/questions/31289838/how-to-delete-wkwebview-cookies
1、WKWebView 白屏问题 WKWebView 自诩拥有更快的加载速度,更低的内存占用,但实际上 WKWebView 是一个多进程组件,Network Loading 以及 UI Rendering...2、WKWebView Cookie 问题 Cookie 问题是目前 WKWebView 的一大短板 2.1、WKWebView Cookie存储 业界普遍认为 WKWebView 拥有自己的私有存储,...WKWebView Cookie 问题在于 WKWebView 发起的请求不会自动带上存储于 NSHTTPCookieStorage 容器中的 Cookie。...3、WKWebView NSURLProtocol问题 WKWebView 在独立于 app 进程之外的进程中执行网络请求,请求数据不经过主进程,因此,在 WKWebView 上直接使用 NSURLProtocol...虽然 WKWebView 坑比较多,但是相对 UIWebView 在内存消耗、稳定性方面还是有很大的优势。尽管苹果对 WKWebView 的开发进度过于缓慢,但相信 WKWebView 才是未来。
// 创建WKWebView let webView = WKWebView(frame: UIScreen.main.bounds) // 加载网页 webView.load(request) 加载本地资源...= WKWebView(frame: UIScreen.main.bounds) // 加载html webView.loadHTMLString(fileContent!...与JavaScript交互 创建WKWebView lazy var webView: WKWebView = { // 创建WKPreferences let preferences...WKWebView 调用 JavaScript: // 加载完毕以后执行 func webView(_ webView: WKWebView, didFinish navigation: WKNavigation...super.viewDidLoad() // 标题 title = "WebView与JavaScript交互" // 加载html webView.loadHTMLString
一、前言 近日,有朋友问我关于WKWebView与JS的交互问题,可我之前一直使用的是UIWebView,也不曾做过WKWebView的交互啊!...接下来大家一块学习下WKWebView是怎么实现原生代码和JS交互的。...二、WKWebView 支持更多的HTML5的特性 高达60fps滚动刷新频率与内置手势 与Safari相容的JavaScript引擎 在性能、稳定性方面有很大提升占用内存更少 协议方法及功能都更细致...三、WKWebView的代理方法 /*!...-> Void) 五、WKWebView与JS的交互使用 首页创建html文件,代码如下: <meta charset
WKWebView的使用 前言 最近项目中的UIWebView被替换为了WKWebView,因此来总结一下WKWebView的使用。...示例Demo:WKWebView的使用 本文将从以下几方面介绍WKWebView: 1、WKWebView涉及的一些类 2、WKWebView涉及的代理方法 3、网页内容加载进度条的实现 4、JS...和OC的交互 5、本地HTML文件的实现 一、WKWebView涉及的一些类 WKWebView:网页的渲染与展示 注意: #import //初始化...initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil]; //加载本地html文件 [_webView loadHTMLString...文本编辑偏好设置.png 详情请前往我的Github:WKWebView的使用 如果我WKWebView使用的总结没帮到你,你也可以看看下面几篇文: https://www.jianshu.com/p
引言 富文本编辑器的应用场景:编辑商品详情 预览: 设计思路:编辑器基于WKWebview实现,Editor使用WKWebview加载一个本地editor.html文件,Editor使用evaluateJavaScript...--editor--> 使用[_webView loadHTMLString:html baseURL:baseURL]; 进行代码加载 NSString *filePath...mainBundle] bundlePath]; NSURL *baseURL = [NSURL fileURLWithPath:basePath]; [self.editorView loadHTMLString...WKWebView中需要针对不同操作系统进行相关方法的重写。...去掉WKWebView键盘自带的工具条:修改browserView的inputAccessoryView属性getter方法返回nil @interface WKWebView (HackishAccessoryHiding
下面是对图1的界面逻辑进行处理的js文件示例,脚本响应按钮的点击事件,并输出日志信息: (图2. js脚本中响应处理按钮事件) 微信客户端通过 WKWebView以及JavaScriptCore提供了小程序的运行环境...WKWebView负责对wxml和wxss进行解析执行,并渲染展示;JavaScriptCore提供了开发者所写的逻辑代码(JavasScript)的运行环境,该运行环境我们称之为Service,Service...小程序按钮点击事件时序图) 当前端Web JS监听到用户的按钮点击行为后,通过WebKit提供的消息传递机制(PostMessage)将点击事件发送给微信客户端当前页面的WKWebView,WKWebView...提供的loadHTMLString接口,加载page-frame.html,页面特有的逻辑通过evaluateJavaScript执行插入到当前页面; 2 首页加载成功后,小程序会在后台预加载新的WebView...,并通过loadHTMLString加载page-frame.html; 3 当需要跳转页面时,取缓存中的预加载页,并执行evaluateJavaScript执行页面特有的逻辑,同时需要补充缓存预加载页