使用WKWebView遇到的坑】的更多相关文章

苹果从iOS8开始推出了WKWebView,大有替换UIWebView的意思(尽管Xcode中还没给UIWebView标记过期版本),所以决定将项目进行适配,iOS8及以上版本,改用WKWebView. 项目中的需求是这样的,视频播放完成后用Web显示广告,原代码用UIWebView呈现一点问题没有.适配WKWebView后同样代码在一些版本上会出问题.代码流程是这样的:WKWebView实例化并加载(视频播放完成前肯定已经加载完成了),视频播放完成后addSubview到屏幕上 1.iOS9.…
WKWebView 简介: WKWebView 是苹果在 WWDC 2014 上推出的新一代 webView 组件,用以替代 UIKit 中笨重难用.内存泄漏的 UIWebView.WKWebView 拥有60fps滚动刷新率.和 safari 相同的 JavaScript 引擎等优势. 之前在使用 WKWebView 进行网络请求时,遇到了 HTTPBody 为空的问题,原因如下: WKWebView 在独立于 app 进程之外的进程中执行网络请求,请求数据不经过主进程,因此,在 WKWebV…
问题产生背景: 新开发的页面中有一部分的界面是需要展示后端接口返回的HTML代码,包括文字和图片.所以就自然而然的要使用iOS原生的WebKit. 鉴于Xcode 8发布以后,编译器支持的最低版本(Deployment Target)也变为iOS8.因此放弃了UIWebView, 直接使用WKWebView(何况苹果宣称WKWebView的性能相比UIWebView有了极大的提升). 坑一:获取不到WKWebView的高度 获取方法:在WKWebView加载成功的代理方法里获取WKWebView…
WKWebView 是苹果在 WWDC 2014 上推出的新一代 webView 组件,用以替代 UIKit 中笨重难用.内存泄漏的 UIWebView.WKWebView 拥有60fps滚动刷新率.和 safari 相同的 JavaScript 引擎等优势. 简单的适配方法本文不再赘述,主要来说说适配 WKWebView 过程中填过的坑以及善待解决的技术难题. .WKWebView 白屏问题 .WKWebView Cookie 问题 .WKWebView NSURLProtocol问题 .WK…
1. ios9以前版本读取本地HTML的问题 当使用loadRequest来读取本地的HTML时,WKWebView是无法读取成功的,后台会出现如下的提示:Could not create a sandbox extension for /原因是WKWebView是不允许通过loadRequest的方法来加载本地根目录的HTML文件.而在iOS9的SDK中加入了以下方法来加载本地的HTML文件:[WKWebView loadFileURL:allowingReadAccessToURL:]但是在…
目录: 1.页面cookie缓存 2.允许弹出JS的弹框 3.在webview页面加载的时候,添加加载进度条 4.禁止掉webview页面的长按复制粘贴功能 5.设置webview的userAgent 正文: 1.1 cookie.localStorage.sessionStorage 相同点:都是浏览器端存储数据,且同源. 区别:cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器之间来回传递.而localStorage和sessionStorage不会…
HTML5页面的图片上传功能在iOS端的实现. 首先,页面上用的是plupload组件,在wkwebview上存在两个坑需要修复才能正常使用. 问题:在webview上点击选择照片/相机拍摄,就会出现whose view is not in the window hierarchy这个错误.其实stackoverflow上有这个错误的解释,但是我们并不能采取相应的方法去解决,因为咱们这个新弹出的UIPictureView并不是由我们决定在viewDidLoad还是viewWillAppear出现…
iOS8之后,苹果推出了WebKit这个框架,用来替换原有的UIWebView,新的控件优点多多,不一一叙述.由于一直在适配iOS7,就没有去替换,现在仍掉了iOS7,以为很简单的就替换过来了,然而在替换的过程中,却遇到了很多坑.还有一点就是原来写过一篇文章 Objective-C与JavaScript交互的那些事以为年代久远的UIWebView已经作古,可这篇文章现在依然有一定的阅读量.所以在决定在续一篇此文,以引导大家转向WKWebView,并指出自己踩过的坑,让大家少走弯路. 此篇文章的逻…
技术栈 lib-flexible 是淘宝的可伸缩方案 WKWebView 是ios8以上支持的网页控件 问题场景 最新公司一个项目使用 lib-flexible 来做移动端的伸缩解决方案,页面在safari上都是正常的, 在使用了 WKWebView 的客户端里却是错乱的 经过尝试,解决方法如下: <meta content="maximum-dpr=2" name="flexible" /> 替换为: <meta name="viewp…
iOS11对WKWebView的功能进一步完善,新增如下功能: Manager Cookies Fileter unwanted content Provide custom resources 下面是对各个特性的简单介绍,详细可参见源码. 1.Manager Cookies iOS11新增了一个类来专门管理Cookies,它就是:WKHTTPCookieStore.该类可以在WebKit里面看到.主要包含了了对Cookie的操作:删除.添加.获取等. 比如这种场景: 一个页面默认登录,当我没有…
最近也遇到这个问题,把我解决的思路记录一下 1.问题: 用wkwebview加载(loadRequest)沙盒documents下html文件 模拟器可以,真机不行 (前提是html内部含引用外联样式js等) 2.解决及分析: 对于uiwebview,在模拟器和真机下,我们用loadrequest都是可以请求html的,没有问题. 不过对于wk来说,在安全性上,苹果做了限制,模拟器可以,device真机上有所区别 原因是WKWebView是不允许通过loadRequest的方法来加载本地根目录的…
  随着H5功能愈发的强大,没进行过混合开发的小伙们都不好意思说自己能够独立进行iOS的app开发,在iOS7操作系统下,常用的native,js交互框架有easy-js,WebViewJavascriptBridge,以及结合javaScriptCore的框架. easy-js 很早的一个框架了,已经好几年没有人维护了,里面有很多隐藏很深的坑,新人如果没有用过的话,建议不要再用了.主要是js新建一个隐藏的iframe,通过拦截url的形式进行交互. WebViewJavascriptBridg…
iOS8之后,苹果推出了WebKit这个框架,用来替换原有的UIWebView,新的控件优点多多.由于一直在适配iOS7,就没有去替换,现在仍掉了iOS7,以为很简单的就替换过来了,然而在替换的过程中,却遇到了很多坑.还有一点就是原来写过一篇文章 Objective-C与JavaScript交互的那些事以为年代久远的UIWebView已经作古,可这篇文章现在依然有一定的阅读量.所以在决定在续一篇此文,以引导大家转向WKWebView,并指出自己踩过的坑,让大家少走弯路. 逻辑图如下所示: 使用及…
众所周知,UIWebView存在内存问题,也就是当加载一个UIWebView时,内存会一直上升趋势无法得到释放.这样在使用UIWebView进行h5交互开发时会有很大的问题. 因而苹果增加了一个新的类WKWebView,WKWebView速度更快.占用内存低.当然也有一些问题,比如说在缓存问题上会有很多的坑,不想UIWebView一样很容易进行缓存. 下面简单研究一下WKWebView交互h5的方式.(http://www.cnblogs.com/markstray/p/5757264.html…
webkit使用WKWebView来代替IOS的UIWebView和OSX的WebView,并且使用Nitro JavaScript引擎,这意味着所有第三方浏览器运行JavaScript将会跟safari一样快. 第一.WKWebView增加的属性和方法类比UIWebView,跟UIWebView的API对比,增加的属性:1.estimatedProgress 加载进度条,在IOS8之前我们是通过一个假的进度条来实现2.backForwardList 表示historyList3.WKWebVi…
在开发过程中,iOS 中实现加载 web 页面主要有两种控件,UIWebView 和 WKWebview,两种控件对应具体的实现方法不同.WKWebView是苹果公司在iOS8系统推出的,这里主要概述WebKit中更新的WKWebView控件的新特性与使用方法,以及小编在开发过程中踩的坑. 一.相比于UIWebView的优势: 在性能.稳定性.占用内存方面有很大提升: 允许JavaScript的Nitro库加载并使用(UIWebView中限制) 增加加载进度属性:estimatedProgres…
Cookie简介说到Cookie,或许有些小伙伴会比较陌生,有些小伙伴会比较熟悉.如果项目中,所有页面都是纯原生来实现的话,一般Cookie这个东西或许我们永远也不会接触到.但是,这里还是要说一下Cookie,因为它真的很重要,由它产生的一些坑也很多. Cookie 在 web中应用比较多,主要是记录一个状态,比如我在网页上登录了,我就可以拿到网页登录后 Cookie,下次再 Cookie 的生效期内我就可以不用输入账号密码,直接跳转登录状态,在App中,Cookie最常用的也就是维持登录状态了…
导语 WKWebView 是苹果在 WWDC 2014 上推出的新一代 webView 组件,用以替代 UIKit 中笨重难用.内存泄漏的 UIWebView.WKWebView 拥有60fps滚动刷新率.和 safari 相同的 JavaScript 引擎等优势. 简单的适配方法本文不再赘述,主要来说说适配 WKWebView 过程中填过的坑以及善待解决的技术难题. 1.WKWebView 白屏问题 WKWebView 自诩拥有更快的加载速度,更低的内存占用,但实际上 WKWebView 是一…
iOS 和 H5 页面交互(WKWebview 和 UIWebview cookie 设置) 主要记录关于cookie相关的坑 1. UIWebview 1. UIWebview 相对比较简单 直接通过 NSHTTPCookieStorage 设置cookie就能实现. 代码部分 ``` NSURL *cookieHost = [NSURL URLWithString:self.domain]; // 设定 cookie NSHTTPCookie *cookie = [NSHTTPCookie…
github地址:JXBWKWebView,如果觉得项目不错可以点个star支持一下,谢谢~ 前言 目前iOS系统已经更新到iOS11,大多数项目向下兼容最多兼容到iOS8,因此,在项目中对WebView组件进行重构再封装时,打算直接舍弃UIWebView转用WKWebView. 如果你目前正在网上浏览关于WKWebView的一些文章,相信你已经清楚了WKWebView的优点,也目睹了大家在使用WKWebView的过程中遇到的坑,而这篇文章,会对到目前为止大家遇到的关于WKWebView的问题给…
一.关于UIWebView 与 WKWebView 选取问题 从发布时间看: 2008年7月11日,在新一代iPhone3G正式发售当天,iPhone OS 2.0(iOS 2.0)推出,这时候就有UIWebView了. WKWebView是IOS 8.0推出,2014年9月份.新出的WKWebView是对老UIWebView的优化与升级. WKWebView对比UIWebView主要优势: 更多的支持HTML5的特性 增加了加载进度属性:estimatedProgress 耗内存小,网页加载速…
本文为原创文章,转载请标明出处 目录 猫眼API HttpClient 实现 HTTP 请求 安装 HttpClientModule 模块 创建 provider 创建 page 一些坑 坑1: 未在 app.module.ts 中导入 HttpClientModule 坑2: Chrome 调试时 CORS 问题 坑3: WKWebView 问题 更多 1. 猫眼API 当然是基于这篇古老的文章啦 ==> http://www.jianshu.com/p/9855610eb1d4 因为是201…
WKWebView 是苹果手机上主要的H5加载控件,它相比UIWebView 有诸多优势.在次不做比较,但是它的坑缺比较多.网上也有很多的例子但是做的比较好的真不多,我在这里推荐俩博客供大家参考.https://cloud.tencent.com/developer/article/1005691:https://segmentfault.com/a/1190000016883249 这两篇介绍的我们日常的碰到的坑,网上其他的篇章介绍的坑没有这两篇介绍的透彻,且有些坑还是自己给自己挖的. 本篇介…
阅读目录 前言 场景1的思考 场景2的思考 避坑方式 实践 结语 一.前言 在上一篇中(如何一步一步用DDD设计一个电商网站(八)—— 会员价的集成),有一行注释的代码: public interface IRoleDiscountRelationRepository// : IRepository<RoleDiscountRelation> { RoleDiscountRelation Get(string roleId); } 其中涉及的到问题是关于值对象的持久化问题.是的,由于我们之前的…
前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 前面大致的了解了Thread的一些方法和属性下面对一些方法进行运用看看具体效果<下面可能还是会贴很多的源代码,其实我是拒绝的,我只想贴每个方法的代码,但是有时候看到一个方法里面有调用了方法,但是笔者有没有给出来,很蛋疼,有种爽到一半的感觉,所以我还是会把它贴出来,希望一次就能挖到底,不论有没有全懂,但至…
[TOC] 前言 在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端,我们利用了spark streaming从kafka中不断拉取数据进行词频统计.本文首先对spark streaming嵌入kafka的方式进行归纳总结,之后简单阐述Spark streaming+kafka在舆情项目中的应用,最后将自己在Spark Streaming+kafka的实际优化中的一些经验进行归纳总结.(如有任何纰漏…
前言:刚学习了一段机器学习,最近需要重构一个java项目,又赶过来看java.大多是线程代码,没办法,那时候总觉得多线程是个很难的部分很少用到,所以一直没下决定去啃,那些年留下的坑,总是得自己跳进去填一次. 思路:大概看了线程相关的一些知识,对线程的运行机制,同步机制,以及整个系统都做一个全面的了解.在深入每一个部分去看一下线程及其相关包的源码做深入了解. 目标:线程,并发包(线程池,并发的数据结构,锁,原子类). 通过一些资料的查看最终把目标定位在线程和并发包上,线程是核心,并发包是辅助工具,…
2016-6-19 前言 View轮播效果在app中很常见,一想到左右滑动的效果就很容易想到使用ViewPager来实现.对于像我们常说的banner这样的效果,具备无限滑动的功能是可以用ViewPager实现的,不过使用ViewFlow更简单些. 最近项目里的一个页面的banner功能出了问题,使用的是viewPager + handler实现的,之前的代码实在是设计的过于复杂,就自己重新实现了一遍.整体来说,ViewPager可以实现无限滚动,但方式比较绕. ViewPager的使用 首先来…
背景: 不久前,我发布了一个调试工具:发布:.NET开发人员必备的可视化调试工具(你值的拥有) 效果是这样的: 之后,有小部分用户反映,工具用不了(没反应或有异常)~~~ 然后,建议小部分用户换个电脑环境试试,有些就好了~~~ 于是,我假定是VS环境下的 Microsoft.VisualStudio.DebuggerVisualizers.dll 的版本不一致引发的. 因此,一般我都建议用户自己下载源码,重新引用去编绎一下!!! 由于该工具一直在CSDN论坛的VB.NET版块置顶着. 考虑到受众…
第一次使用threejs到实际项目中,开始的时候心情有点小激动,毕竟是第一次嘛,然而做着做着就感受到这玩意水好深,满满的都是坑,填都填不过来.经过老板20天惨无人道的摧残,终于小有成就. 因为第一次搞这玩意,相对的遇到的问题也是大把的,让我来一一诉说一路上遇到的各种问题. 开发使用: C4D.Blender2.75.[threejs-r72](http://threejs.org/) 万事开头难,第一个问题就是怎么才能把3d软件中做好的模型显示在浏览器中. 一.模型在软件中的导入与导出. 这个项…