华为手机浏览器提醒版本太低,华为手机浏览器总是跳出版本过低

首页 > 实用技巧 > 作者:YD1662023-05-28 21:02:14

回过头来看,我们团队可能不是第一个踩此坑的,也不会是最后一个。所以无论是从节约公司研发资源角度,还是从提升用户体验的角度,我们都希望 iOS 团队的兄弟们能尽快升级 WKWebView。我们在撰写这篇文章的时候去苹果官网看了一下,截至2017年7月,iOS 9.0 及以上版本已经占到97%。

华为手机浏览器提醒版本太低,华为手机浏览器总是跳出版本过低(9)

▲ 苹果官方的 iOS 版本分布数据(数据截至2017年7月)

开发阶段的跨域问题

前端后端分离,又一次把跨域问题摆在了我们面前。页面上线之后与接口是在同一个域下的,只有在开发阶段才面临跨域问题,所以只要把我们自己开发环境的跨域问题解决即可。

早期解决开发阶段的跨域,通常采用给 Chrome 设置启动参数 “–disable-web-security” 禁用浏览器安全策略的办法,可这招在新版本 Chrome 上已经不灵了。再想想,移动端项目不用考虑低版本 PC端浏览器,完全可以采用 CORS(跨域资源共享)技术来实现跨域。对于 GET/POST 这类简单请求来说,只要服务器响应头的 Access-Control-Allow-Origin 字段值包含当前源(协议 域名 端口),支持 CORS 的浏览器便会放行此次请求。既然是开发阶段的问题,我们还是不要麻烦后端同学修改接口了,Chrome 浏览器有个名叫 “Allow-Control-Allow-Origin: *” 的插件,可以自动给服务器响应头加上 “Allow-Control-Allow-Origin: *” ,装上它, Chrome 就可以跨域了。那……其他浏览器呢,当然我们可以说我开发阶段只用 Chrome,可是手机浏览器呢?APP呢?它们可未必有这个插件。

搞清楚 CORS 原理之后会发现这个问题不难解决,没有插件我们可以使用抓包工具来给 response 加上 “Allow-Control-Allow-Origin: *”,比如 fiddler。在 fiddler 菜单中找到 Rules → Customize Rules…,弹出 fiddler 脚本编辑器(第一次按提示安装即可),如下图所示,在 OnBeforeResponse 函数中加上红框中的代码,保存成功之后,fiddler 便会自动给经过它的 response 增加 “Allow-Control-Allow-Origin: *” 了,我们只需要设置好浏览器和手机的代理,让请求和响应经过 fiddler 即可实现跨域。

华为手机浏览器提醒版本太低,华为手机浏览器总是跳出版本过低(10)

Flexbox布局问题

本次改版的页面布局,大量使用了 CSS3 Flexbox 弹性盒模型。Flexbox 不是什么特别新的技术,但是由于相关规范经历多次迭代,写法不尽相同,而不同时期的浏览器实现了不同版本的规范,这就造成了一些同学对 Flexbox 布局写法和浏览器兼容性的疑惑,迟迟不敢在项目中大规模应用。

华为手机浏览器提醒版本太低,华为手机浏览器总是跳出版本过低(11)

其实,算上所有版本规范,移动端对 Flexbox 的支持还是比较好的,不信你看 http://caniuse.com/#search=flexbox。我们完全可以只按照最新的标准来写,然后借助 autoprefixer 等工具来自动补全旧版代码兼容低版本浏览器,主流脚手架、IDE都支持。

华为手机浏览器提醒版本太低,华为手机浏览器总是跳出版本过低(12)

上一页12345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.