iOS之WKWebView】的更多相关文章

首先看看这篇文章,写得很好:http://nshipster.cn/wkwebkit/ 再推荐去看看 iOS_8_by_Tutorials 这本书里的 WKWebView相关章节! 我这里说下自己的简单体会: 1.对比UIWebView ,网上说WKWebView的效率要高,到底高多少,不清楚. 2.WKWebView将javascript的注入,以及javascript传回数据的方法标准化了.在UIWebView时代,执行javascript没什么问题,但是从javascript传回数据就麻烦…
首先看看这篇文章,写得很好:http://nshipster.cn/wkwebkit/ 再推荐去看看 iOS_8_by_Tutorials 这本书里的 WKWebView相关章节! 我这里说下自己的简单体会: 1.对比UIWebView ,网上说WKWebView的效率要高,到底高多少,不清楚. 2.WKWebView将javascript的注入,以及javascript传回数据的方法标准化了.在UIWebView时代,执行javascript没什么问题,但是从javascript传回数据就麻烦…
  随着H5功能愈发的强大,没进行过混合开发的小伙们都不好意思说自己能够独立进行iOS的app开发,在iOS7操作系统下,常用的native,js交互框架有easy-js,WebViewJavascriptBridge,以及结合javaScriptCore的框架. easy-js 很早的一个框架了,已经好几年没有人维护了,里面有很多隐藏很深的坑,新人如果没有用过的话,建议不要再用了.主要是js新建一个隐藏的iframe,通过拦截url的形式进行交互. WebViewJavascriptBridg…
在WkWebView与JavaScript交互中,经常会在原生中注入MessageHandler,app中注入MessageHandler的方法 WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init]; config.userContentController = [WKUserContentController new]; //注入handler [config.userContentController a…
iOS8以后,苹果推出了新框架Webkit,提供了替换UIWebView的组件WKWebView.各种UIWebView的问题没有了,速度更快了,占用内存少了,一句话,WKWebView是App内部加载网页的最佳选择!我们做开发最关系的是内存问题,基本上网上所有的资料都在说WKWebview的内存占用会更少,但是到底少了多少我这边做了下测试,同样是加载163的首页   使用UIWebView的内存     使用WKWebview的内存 从上图看出内存大概能优化百分之八十左右,而且从网页的滑动上也…
一,前言 有时候在WKWebView加载页面后会发现页面的字会很小, 这是因为原网页没有做手机屏幕尺寸的适配, 那么在后台不做调整的情况下我们移动端怎样来适配页面呢? 以下代码可以适配大小(原本不可以左右滑动的可能会需要左右滑动才能完整查看)  二,实现方式 - (WKWebView *)webView { if (!_webView) { _webView = [[WKWebView alloc] init]; //以下代码适配大小 NSString *jScript = @"var meta…
// 页面加载完成之后调用 - (void)webView:(WKWebView *)webView didFinishNavigation:(null_unspecified WKNavigation *)navigation { // 不执行前段界面弹出列表的JS代码 [webView evaluateJavaScript:@"document.documentElement.style.webkitTouchCallout='none';" completionHandler:n…
以前用得不多,先开一篇,以后有遇到再补充. 1.返回 2.JS 调用 OC 3.获取.修改.添加网页信息 1.返回 if (self.mWebView.canGoBack == YES) { [self.mWebView goBack]; }else{ //提示 }; 2.JS 调用 OC 2-1).添加 和 JS 约定的消息名 [self.userContentController addScriptMessageHandler:self name:@"约定的消息名"]; 2-2).…
// 网页闪烁问题    if ([self.webView.realWebView isKindOfClass:[WKWebView class]]) {         ((WKWebView *) self.webView.realWebView).allowsBackForwardNavigationGestures = NO;     } …
项目中有些页面,我采用了html页面开发,然后用wkwebview加载的设计.在加载过程中遇见了一些问题,在这里进行一些记载和讨论.如有不同意见欢迎进行评论沟通. 问题时候这样的: 在webview的loadrequest中不能加载出来 webview.m中的代码: //self.PageUrlString:加载的链接地址 if (self.PageUrlString) { [self.wekView loadRequest:[NSURLRequest requestWithURL:[NSURL…
Xcode8发布以后,编译器开始不支持IOS7,所以很多应用在适配IOS10之后都不在适配IOS7了,其中包括了很多大公司,网易新闻,滴滴出行等.因此,我们公司的应用也打算淘汰IOS7. 支持到IOS8,第一个要改的自然是用WKWebView替换原来的UIWebView.WKWebView有很多明显优势: 更多的支持HTML5的特性 官方宣称的高达60fps的滚动刷新率以及内置手势 将UIWebViewDelegate与UIWebView拆分成了14类与3个协议,以前很多不方便实现的功能得以实现…
使用的webview为WKWebView,核心部分代码(Swift 4): // 创建打印渲染 let printPageRenderer:PDFRender = PDFRender() // 获取渲染格式 let viewFormatter:UIViewPrintFormatter = webView.viewPrintFormatter() // 设置渲染格式 printPageRenderer.addPrintFormatter(viewFormatter, startingAtPageA…
#pragma mark ---- 点击事件 -(void)leftTapClick:(UITapGestureRecognizer *)sender{ //判断是否能返回到H5上级页面 if (self.myWeb.canGoBack==YES) { //返回上级页面 [self.myWeb goBack]; }else{ //退出控制器 // [self dismissViewControllerAnimated:YES completion:nil]; [self.navigationCo…
Cookie简介说到Cookie,或许有些小伙伴会比较陌生,有些小伙伴会比较熟悉.如果项目中,所有页面都是纯原生来实现的话,一般Cookie这个东西或许我们永远也不会接触到.但是,这里还是要说一下Cookie,因为它真的很重要,由它产生的一些坑也很多. Cookie 在 web中应用比较多,主要是记录一个状态,比如我在网页上登录了,我就可以拿到网页登录后 Cookie,下次再 Cookie 的生效期内我就可以不用输入账号密码,直接跳转登录状态,在App中,Cookie最常用的也就是维持登录状态了…
最近也遇到这个问题,把我解决的思路记录一下 1.问题: 用wkwebview加载(loadRequest)沙盒documents下html文件 模拟器可以,真机不行 (前提是html内部含引用外联样式js等) 2.解决及分析: 对于uiwebview,在模拟器和真机下,我们用loadrequest都是可以请求html的,没有问题. 不过对于wk来说,在安全性上,苹果做了限制,模拟器可以,device真机上有所区别 原因是WKWebView是不允许通过loadRequest的方法来加载本地根目录的…
iOS 第三方库.插件.知名博客总结 用到的组件 1.通过CocoaPods安装 项目名称 项目信息 AFNetworking 网络请求组件 FMDB 本地数据库组件 SDWebImage 多个缩略图缓存组件 UICKeyChainStore 存放用户账号密码组件 Reachability 监测网络状态 DateTools 友好化时间 MBProgressHUD 一款提示框第三方库 MWPhotoBrowser 一款简单的 iOS 照片浏览控件 CTAssetsPickerController…
分析 iOS的 wkwebview 在滚动时会暂停许多动画,作为优化 解决思路 监听滚动事件,利用文档重绘即可刷新动画 ps:因为滚动有惯性,touchmove事件只能监听到手指松开的那一刻,所以只能监听滚动事件 解决方法 // html <div class="refresher"></div> // js const node = document.querySelector('.refresher') domNode.addEventListener('s…
iOS精选源码 APP启动视频 自定义按钮,图片可调整图文间距SPButton 一款定制性极高的轮播图,可自定义轮播图Item的样式(或只... iOS 筛选菜单 分段选择器 仿微信导航栏的实现,让你的导航栏过渡平滑,赏心悦目. iOS仿微信的悬浮窗,自定义转场动画,使用超级简单 iOS优质博客 2018 我的技术进阶之路 窗外雨夹着雪,2018 的冬天似乎格外寒冷.国内经济下行,资金链断裂.人员优化.冻结 HC 等消息不绝于耳,2018 的冬天被一层阴霾笼罩,互联网从业人员一度人心惶惶.大潮退…
Android vs iOS vs Web UI view Android ViewGroup ImageView TextView iOS UIView ImageView TextView Web div img span In Android development, you write views in Kotlin or Java; in iOS development, you use Swift or Objective-C. With React Native, you can…
目录: 1.页面cookie缓存 2.允许弹出JS的弹框 3.在webview页面加载的时候,添加加载进度条 4.禁止掉webview页面的长按复制粘贴功能 5.设置webview的userAgent 正文: 1.1 cookie.localStorage.sessionStorage 相同点:都是浏览器端存储数据,且同源. 区别:cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器之间来回传递.而localStorage和sessionStorage不会…
你真的了解webview么? 写在前面: Webview是我们前端开发从PC端演进到移动端的一个重要载体,现在大家每天使用的App,webview都发挥着它的重要性.接下来让我们从webview看世界. 一.适用场景 提到应用场景,大家最直观的能想到一些App内嵌的页面,为我们提供各种各样的交互,就像下面图片里的这样: 其实webview的应用场景远远不止这些,其实在一些PC的软件里,和我们交互的也是我们的html页面,只是穿着webview的衣服,衣服太美而我们没有发现他们的真谛. 另外,还有…
育新 徐宏 嘉洁 ·2017-06-09 20:03 在App开发中,内嵌WebView始终占有着一席之地.它能以较低的成本实现Android.iOS和Web的复用,也可以冠冕堂皇的突破苹果对热更新的封锁. 然而便利性的同时,WebView的性能体验却备受质疑,导致很多客户端中需要动态更新等页面时不得不采用其他方案. 以发展的眼光来看,功能的动态加载以及三端的融合将会是大趋势. 那么如何克服WebView固有的问题呢? 我们将从性能.内存消耗.体验.安全几个维度,来系统的分析客户端默认WebVi…
背景 使用react-native构建的iOS/Android双端APP,通过WebView加载本地页面,需要根据服务器提供的字体列表实现下载和动态加载. 本地字体检查 有些字体手机操作系统已经提供了,可以不需要下载和加载. iOS UIFont.familyNames提供了所有系统自带字体的familyNames,直接将结果返回给RN处理即可. SHMFontsModul.h // // SHMFontsModule.h // shimo // // Created by Rex Rao on…
之前说要和同事一起开发个微信小程序项目,现在也在界面设计,功能定位等需求上开始实施了.所以在还未正式写项目前,打算在空闲时间学习下小程序.本意是在学习过程中结合实践整理出一个较为入门且不是很厚的教程,但也很难保证时间充裕能一直写下去.所以先开个头留个坑,那么本文开始先从小程序注册到创建第一个小程序说起: 一.从注册开始 要开发小程序自然要申请注册一个小程序,我们先进入微信公众平台注册账号(若有账号则直接登录). 因为微信公众号同时管理着订阅号,公众号以及小程序等多种账号,所以这里要选择小程序账号…
本文由百度技术团队“蔡锐”原创发表于“百度App技术”公众号,原题为<百度App网络深度优化系列<三>弱网优化>,感谢原作者的无私分享. 一.前言 网络优化解决的核心问题有三个,第一是安全问题,我们在<百度APP移动端网络深度优化实践分享(一):DNS优化篇>进行了详细的讲解.第二是速度问题,我们在<百度APP移动端网络深度优化实践分享(二):网络连接优化篇>也做了详细的介绍.第三是弱网问题,它是网络优化中最为复杂且需要反复验证和分析的问题,我们的<百…
1.WKWebView的使用 2.常见问题 2.1 iOS开发 WKWebView下js的alert(),confirm(),prompt()方法无法正常执行…
App 容器,简言之,App 承载某类应用(H5/RN/Weex/小程序/Flutter ...)的运行环境,可主动干预并进行功能扩展,达到丰富能力.优化性能.提升体验的目的,如页面数据预取(prefetch)缩短页面可用耗时.WebAR 将 AR 能力赋予 H5.Native 地图与 H5 复合渲染交互. 数据预取 WebAR 能力 Native 与 H5 复合 本篇主要就 H5 容器(WebView)相关建设进行概要展开. 我们先来做一个类比,通过 H5 的视角简要看一看 Android.i…
jsbridge 原理 & 通信原理 Hybrid 方案是基于 WebView 的,JavaScript 执行在 WebView 的 Webkit 引擎中; 因此,Hybrid 方案中 JSBridge 的通信原理会具有一些 Web 特性; JavaScript 调用 Native JavaScript 调用 Native 的方式,主要有两种: 注入 API 拦截 URL SCHEME 注入 API 方式的主要原理是,通过 WebView 提供的接口,向 JavaScript 的 Context…
HTML5页面的图片上传功能在iOS端的实现. 首先,页面上用的是plupload组件,在wkwebview上存在两个坑需要修复才能正常使用. 问题:在webview上点击选择照片/相机拍摄,就会出现whose view is not in the window hierarchy这个错误.其实stackoverflow上有这个错误的解释,但是我们并不能采取相应的方法去解决,因为咱们这个新弹出的UIPictureView并不是由我们决定在viewDidLoad还是viewWillAppear出现…
基于Swift 3 . Xcode 8 . iOS 10 下的WKWebView的使用. 首先是WKWebView的基本用法: var wk:WKWebView! var progBar:UIProgressView! //定义的进度条 override func viewDidLoad() { super.viewDidLoad() self.wk = WKWebView(frame: self.view.frame) let theConfiguration = WKWebViewConfi…