WKWebView适应屏幕宽度
来源:互联网 发布:java新手入门教程视频 编辑:程序博客网 时间:2024/06/06 05:00
在iOS 8以后苹果推出了一个新的框架Webkit,用WKWebView代替了UIWebView,WKWebView“有占内存少,速度快”的优点
在UIWebView中,这个scalesPageToFit是可以自适应屏幕的,但是效果不如直接修改js好。
但是WKWebView中没有这个属性,为了解决这个问题,有两个方法:1、告诉前端开发人员直接在html文件的源码中改,增加
viewport视口适配屏幕。
2、通过js修改,避免前端人员忘记或者没有做移动端的适配,我们自己应该规避问题的发生带来不好的用户体验
*1.
//页面加载完成之后调用
@objc(webView:didFinishNavigation:)func webView(_ webView:WKWebView, didFinish navigation:WKNavigation!) {
var scriptContent ="var meta = document.createElement('meta');"
scriptContent +="meta.name='viewport';"
scriptContent +="meta.content='width=device-width';"
scriptContent += "document.getElementsByTagName('head')[0].appendChild(meta);"
webView.evaluateJavaScript(scriptContent, completionHandler:nil)
}
//MARK:---加载webView
func loadWebView(){
//适配屏幕
let jsStr ="var meta = document.createElement('meta'); meta.setAttribute('name', 'viewport'); meta.setAttribute('content', 'width=device-width'); document.getElementsByTagName('head')[0].appendChild(meta);"
let wkUserScript =WKUserScript.init(source: jsStr, injectionTime:WKUserScriptInjectionTime.atDocumentStart,forMainFrameOnly: true)
let wkUController =WKUserContentController.init()
wkUController.addUserScript(wkUserScript)
let wkWebConfig =WKWebViewConfiguration.init()
wkWebConfig.userContentController = wkUController
detaiweb =WKWebView(frame: self.view.bounds,configuration:wkWebConfig)
detaiweb.navigationDelegate =self
detaiweb.uiDelegate =self
}
注意:尽量使用WKUserScriptInjectionTime.atDocumentStart参数,web开始加载的时候就是适配好的,用户体验更好
原因:看很多文章写得是WKUserScriptInjectionTime.atDocumentEnd会出现*1的问题
- WKWebView适应屏幕宽度
- WKWebView的使用-适应屏幕宽度
- iOS WKwebview 图片适应屏幕,控制图片宽度。
- 自动适应屏幕宽度
- 页面自动适应屏幕的宽度
- 适应各种不同屏幕宽度的网页
- 手机网页宽度自动适应屏幕宽度的方…
- 使EditText的宽度自动适应屏幕控件
- 使EditText的宽度自动适应屏幕控件
- 网页自动适应屏幕宽度的CSS代码
- ios UIWebView中如何让图片大小适应屏幕宽度
- UIWebView设置图片的宽度适应屏幕的大小
- iOS WKwebview自动实现缩放网页适应屏幕和侧滑返回上个页面
- WKWebView内容自适应宽度
- 写一个linearayout,并且使得它的宽度适应屏幕宽度
- 屏幕适应
- WebView宽度适应相关
- UILabel 自动适应宽度
- Jdbc
- HDU 3336 Count the string(KMP+求给定字符串含前缀的数量)
- springcloud 的eureka服务注册demo
- STM32之中断与事件---中断与事件的区别
- matlab添加工具箱(2014b版)
- WKWebView适应屏幕宽度
- MATLAB逻辑数组
- struts2+jquery+Ajax异步请求发送与解析json数据
- 自定义BitmapTransformation完美解决Glide加载圆角或者圆形图片
- [Ryzom_service]配置文件中StartCommands运行
- apt安装sbt(Scala)
- Character的用法
- 函数调用栈帧过程(带图详解)
- 申请Let's Encrypt的证书