由于WKWebView做了安全保护,不能够直接loadRequest一个本地文件,所以iOS9之后需要使用loadFileURL方法....NSString stringWithFormat:@"%@/%@", [paths objectAtIndex:0],@"Test.html"]; readAccessToURL指定webKit可加载的目录或者文件
一、前言 近日,有朋友问我关于WKWebView与JS的交互问题,可我之前一直使用的是UIWebView,也不曾做过WKWebView的交互啊!...接下来大家一块学习下WKWebView是怎么实现原生代码和JS交互的。...可获取加载进度等。...三、WKWebView的代理方法 /*!...) })) self.present(alertViewController, animated: true, completion: nil) } 4、获取网页中节点的数据 //网页加载完成
iOS 9.0以上直接设置WKNavigationDelegate代理 func webView(_ webView: WKWebView, didReceive challenge: URLAuthenticationChallenge...completionHandler(.useCredential, cred) } 引用一下 self.wk.navigationDelegate = self 搞定,成功加载证书错误的站点
问题近期有个需求,需要在WKWebView加载PDF中,基于安全的理由,屏蔽【复制、选择全部】等功能弹窗解决方案捕捉长按手势后进行屏蔽,问题是,原来手势是放在view的subview中,导致一直屏蔽view...的长按手势没法生效// 页面加载完成之后调用- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation
问题 近期有个需求,需要在WKWebView加载PDF中,基于安全的理由,屏蔽【复制、选择全部】等功能弹窗 解决方案 捕捉长按手势后进行屏蔽,问题是,原来手势是放在view的subview中,导致一直屏蔽...view的长按手势没法生效 // 页面加载完成之后调用 - (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)
基于Swift 3 、 Xcode 8 、 iOS 10 下的WKWebView的使用。 首先是WKWebView的基本用法: var wk:WKWebView!...//定义的进度条 override func viewDidLoad() { super.viewDidLoad() self.wk = WKWebView(frame...CGRect(x: 0,y : 0, width: self.view.frame.width, height:self.view.frame.height) //定位wk位置 wk = WKWebView...//视图已经加载完后执行 override func viewDidAppear(_ animated: Bool){ super.viewDidAppear(animated)...关于WKWebView中Html5图片上传,下一篇随笔我会说一下。
白天这个网站自上线以来,研究最多的就是WordPress加载慢的问题,前前后后做了很多优化,包括换服务器、更换源码、设置缓存、CDN、优化数据库等等,几乎尝试了自己能力范围内的所有方法,能用的都用了,...但还是没能解决加载速度慢的问题。...影响WordPress网站加载速度慢的原因 这一篇文章作者速这样说的,他在半年前换过一次空间,由Windows主机换到了Linux服务器,按道理来说换了新的服务器配置都提升了,页面加载速度还是一如既往的慢...一下就加载了,简直就是感觉重获新生了,原来这才是影响白天网站加载速度慢的罪魁祸首啊!一下子从原来5-6秒的加载时间减到了2秒(虽然还是很慢)。...未经允许不得转载:肥猫博客 » admin-ajax.php加载速度慢,原来这才是影响WordPress网站加载速度慢的罪魁祸首!
WKWebView API WKWebView的头文件声明: // webview 配置,具体看下面 @property (nonatomic, readonly, copy) WKWebViewConfiguration...API - (nullable WKNavigation *)loadRequest:(NSURLRequest *)request; // 加载URL - (nullable WKNavigation...loadFileURL:(NSURL *)URL allowingReadAccessToURL:(NSURL *)readAccessURL NS_AVAILABLE(10_11, 9_0); // 直接加载...nullable WKNavigation *)loadHTMLString:(NSString *)string baseURL:(nullable NSURL *)baseURL; // 直接加载...WKUserScriptInjectionTimeAtDocumentStart, WKUserScriptInjectionTimeAtDocumentEnd } NS_ENUM_AVAILABLE(10_10, 8_0); 它是一个枚举类型,只有在文档开始加载时注入和加载结束时注入
在iOS中,加载网页目前有两种控件:UIWebView和WKWebView。...但WKWebView的内存超过系统分配给它的内存的时候,WKWebView浏览器就会崩溃白屏,但是APP不会crash(APP会收到系统通知,并且尝试去重新加载页面)。...// 在传给WKWebView一个webUrl的时候,WebView决定是否加载该请求。...:(null_unspecified WKNavigation *)navigation { } //页面加载失败时调用 (【web视图加载内容时】发生错误) - (void)webView:(WKWebView...显示加载进度条 我们可以通过监听WKWebView的estimatedProgress属性值来实现一个加载进度条,而UIWebView只能是通过timer事件做一个假的加载进度条。
Uni-App 打包发布的H5包直接放到APP中加载可以用于提升加载速度,一般有两种方式: 直接把包放到 iOS 项目中加载 (多用于开发阶段测试) 从后台服务器预下载到文件沙盒内加载 (可以减少APP...文件中的 h5配置的运行的基础路径为:./ 修改配置 发行为H5 H5发行 二、iOS项目内直接加载包内 Uni-App 将整个Uni-App...包以引用(蓝色文件夹)的方式加入项目 引入Uni-App 加载 uni-app - (void)viewDidLoad { [super viewDidLoad...Uni-App 基本逻辑和加载本地一致,但是必须使用 relativeToUrl 方法加载,首先确认自己缓存的目录,然后给路径拼接file://协议头: - (void)viewDidLoad {....问题导致无法加载可以按如下设置,使WKWebView允许跨域: [self.webView.configuration.preferences setValue:@YES forKey:@"allowFileAccessFromFileURLs
您可以使用WKWebView类来在应用程序中嵌入web内容,通过创建一个WKWebView对象,将其设置为视图,并发送一个请求来加载web内容。...使用 initWithFrame:configuration: 方法来创建WKWebView对象; 使用 loadHTMLString:baseURL: 方法来加载本地HTML文件; 使用 loadRequest...; 当WevView的内容开始加载时触发 - (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation...:(NSError *)error; 当前页面加载完成后触发 - (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation...决定是否允许或者取消一次页面加载请求 - (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction
在UIWebView下,可以使用 [[NSURLCache sharedURLCache] removeAllCachedResponses];//清除缓存 WKWebView清除cookies的方法...cookies]) { NSLog(@"%@", cookie); } 参考链接:http://stackoverflow.com/questions/31289838/how-to-delete-wkwebview-cookies
摘要:替换UIWebview为WKWebview时,遇到一个怪异的现象,webview的二级界面回到一级界面时,一级重新渲染时,会直接抛错; 分析问题: 因为,我们的app支持iOS8以上,考虑到UIWebview...的内存使用要比WKWebview的高、加载速度慢,同时,对WKWebview的高达60fps的滚动刷新率以及内置手势充满了羡慕,所以脑袋一抽,撸起袖子直接替换掉原来的UIWebview;这个过程中出现了这个莫名其妙的问题...(进入一个H5加载的界面,点击内容,跳转到另外一个H5界面,然后,点击H5的导航返回按钮,上重新加载上一个界面,直接告知加载失败); 加断点,打印出来的error信息是: Error Domain=NSURLErrorDomain...其实就是因为webview在之前的请求还没有加载完成,下一个请求发起了,此时webview会取消掉之前的请求,因此会回调到失败这里。...因此,在处理Webview的加载失败的回调时,要注意拦截掉被取消的请求。 解决方案: 在失败的方法里: ?
WKWebView的使用 前言 最近项目中的UIWebView被替换为了WKWebView,因此来总结一下WKWebView的使用。...示例Demo:WKWebView的使用 本文将从以下几方面介绍WKWebView: 1、WKWebView涉及的一些类 2、WKWebView涉及的代理方法 3、网页内容加载进度条的实现 4、JS...涉及的代理方法 WKNavigationDelegate :主要处理一些跳转、加载处理操作 // 页面开始加载时调用 - (void)webView:(WKWebView *)webView...didStartProvisionalNavigation:(WKNavigation *)navigation { } // 页面加载失败时调用 - (void)webView:(WKWebView...*)webView didCommitNavigation:(WKNavigation *)navigation { } // 页面加载完成之后调用 - (void)webView:(WKWebView
问题代码 -(void)webView:(WKWebView *)webView didFailNavigation:(WKNavigation *)navigation withError:(NSError...官方解释 原因解析 最有可能的情况是:先加载我们设置好的第一个请求,然后网页在第一个请求完成之前,另外加载了一个URL(即使相同的URL重新加载)。...-(void)webView:(WKWebView *)webView didFailNavigation:(WKNavigation *)navigation withError:(NSError *
1、WKWebView 白屏问题 WKWebView 自诩拥有更快的加载速度,更低的内存占用,但实际上 WKWebView 是一个多进程组件,Network Loading 以及 UI Rendering...在 WKWebView 中加载下面的测试链接可以稳定重现白屏现象: http://people.mozilla.org/~rnewman/fennec/mem.html 这个时候 WKWebView.URL...不过这种方法依然解决不了页面 iframe 跨域请求的 Cookie 问题,毕竟-[WKWebView loadRequest:]只适合加载 mainFrame 请求。...loadRequest: request]; workaround: 假如想通过-[WKWebView loadRequest:]加载 post 请求 request1: http://h5.qzone.qq.com...request3,最后通过 NSURLProtocolClient 将加载结果返回 WKWebView; 5、WKWebView 页面样式问题 在 WKWebView 适配过程中,我们发现部分H5页面元素位置向下偏移或被拉伸变形
1、WKWebView白屏问题 WKWebView自诩拥有更快的加载速度,更低的内存占用,但实际上WKWebView是一个多进程组件,Network Loading以及UI Rendering在其它进程中执行...在WKWebView中加载下面的测试链接可以稳定重现白屏现象:http://people.mozilla.org/~rnewman/fennec/mem.html 这个时候webView.URL会变为nil...不过这种方法依然解决不了页面iframe跨域请求的Cookie问题,毕竟-[WKWebView loadRequest:]只适合加载mainFrame请求。...loadRequest: request]; workaround: 假如想通过-[WKWebView loadRequest:]加载post请求request1:http://h5.qzone.qq.com...request3,最后将加载结果返回WKWebView; 5、WKWebView 页面样式问题 在WKWebView适配过程中,我们发现部分H5页面元素位置向下偏移或被拉伸变形,追踪后发现主要是H5页面高度值异常导致
WKNavigationDelegate 如命名,这个是WKWebView的导航的代理。它控制了WKWebView在加载一个页面流程中的各个关键时间节点的。...相当于WKWebView加载的生命周期方法。...:(WKNavigation *)navigation{ NSLog(@"页面开始加载"); } // 当内容开始返回时调用 - (void)webView:(WKWebView *)webView...:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation{ NSLog(@"页面完成加载"); } // 页面加载失败时调用...URL,客户端在加载前拦截这个URL,通过解析这个URL识别它的内容,调用相应的原生方法,并阻上浏览器加载这个URL。
代理方法 添加引用 import WebKit 代理 WKNavigationDelegate 页面加载状态的回调 代理方法 func webView(_ webView: WKWebView, didStartProvisionalNavigation...{ } func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!)...{ } func webView(_ webView: WKWebView, didFail navigation: WKNavigation!...func backBarButtonClick(){ if(self.webview.canGoBack){ self.webview.goBack() } } 在之前的页面加载完成回调中重新设置导航栏...{ self.setNavi() //这一行是为了 页面加载完成后 调用js方法 加载数据 self.webview.evaluateJavaScript("loadData('
{ //页面加载完成时 webView.evaluateJavaScript( "document.documentElement.style.webkitUserSelect='none...{ //页面加载完成时 for subview in webView.scrollView.subviews { if(subview.gestureRecognizers !...{ //页面开始加载,可在这里给用户loading提示 self.showNoticeWait(text: "加载中..."); } func webView(_ webView: WKWebView...{ //页面加载完成时 for subview in webView.scrollView.subviews { if(subview.gestureRecognizers !..., withError error: Error) { //页面加载出错,可在这里给用户错误提示 } func webView(_ webView: WKWebView, didReceiveServerRedirectForProvisionalNavigation
领取专属 10元无门槛券
手把手带您无忧上云