一、缘起

最近在做一个项目,项目是在微信的内置浏览器上面运行的,其实就是做一个Web App,然后套在微信里面跑。那么问题来了:

Web App的首页在安卓手机上一切正常,可是一到苹果手机,首页的滑动就变卡顿了,经常拉出半截页面,底部不翼而飞。

登录拦截页面使用了localStorage作为本地存储,安卓手机依旧正常,苹果这厮却无限跳转登录页。

二、造成差异的原因

列位看官应该都知道,PC端浏览器浏览效果的差异是由于众多浏览器使用了五花八门的内核造成的,那么移动端呢,我想应该也是一样的,于是经过一番查阅,得出结论如下:

安卓手机:微信统一如果你的微信版本是6.1以下,微信会调用系统自带的浏览器去加载渲染页面;如果你的微信版本是6.1以上,微信就会调用QQ浏览器的X5内核去加载渲染网页。

苹果手机:不管是哪个版本,微信都会调用系统自带的浏览器去加载渲染页面,苹果手机自带的浏览器即为Safari浏览器,与Chrome浏览器一样皆为webkit内核。

至此,对于前文中所提的问题,答案已经显而易见,就是由于X5内核和webkit的差异引起的。

三、解决方案

关于问题1卡顿现象

添加如下代码即可:

html, body{

height: 100%;

}

*{

-webkit-overflow-scrolling: touch;

}

由于IOS 5 已经能够支持区域滚动,即

overflow: scroll

故并不需要写一堆的JS事件,来处理页面的卷动事件,并且由于-webkit-overflow-scrolling: touch;这行代码启用了硬件加速特性,所以滑动很流畅,卡顿问题自然就得以解决了。

关于问题2登录拦截中的localStorage失效问题

该问题是由于Private Browsing Mode引起的。

其实是启用了无痕浏览,实际上,localStorage并没有失效,只是因为无痕浏览的原因,导致其变为只读,即该无法写入localStorage,所以一直判定为未登录状态,路由自然就一直往登录页面跳转了。可使用如下代码提示用户:

if (typeof localStorage === 'object') {

try {

localStorage.setItem('searchHistory', searchHistory);

} catch (e) {

alert('Your web browser does not support storing settings locally. In Safari, the most common cause of this is using "Private Browsing Mode". Some settings may not save or some features may not work properly for you.');

}

}

当然,除了使用localStorage还可以使用cookie作为替代方案,其原理是一样的,只是需要注意cookie的有效时间设置,如果不设置就会在每次对话结束后,自动清除。

苹果html向上滑动不流畅,苹果手机Safari浏览器下滑动卡顿的问题相关推荐

  1. 苹果手机上滑动会卡顿_苹果手机Safari浏览器下滑动卡顿的问题

    一.缘起 最近在做一个项目,项目是在微信的内置浏览器上面运行的,其实就是做一个Web App,然后套在微信里面跑.那么问题来了: Web App的首页在安卓手机上一切正常,可是一到苹果手机,首页的滑动 ...

  2. ios的Safari浏览器下视频播放问题

    ios的Safari浏览器下视频播放问题 起因 原因: 解决方案: 示例代码 起因 最近在做手机端接口对接,后端使用java,前端使用vue开发,在提供给前端视频接口时出现了个问题: 视频在安卓上可以 ...

  3. Safari浏览器下colgroup失效导致表格列宽均分

    Safari浏览器下colgroup失效导致表格列宽均分 表现 原因 解决 表现 使用原生tabel标签写表格,由于需要对表头做特殊处理,所以采用两个表格组装的方式写,表头也是用单独的table标签写 ...

  4. Element-UI在safari浏览器下table列表无法对齐的问题

    由于Element-UI的table列表会在两个column中间添加一条能够拖动的竖线,(可能表现的不明显以至于很多人并没有发现,但是竖线是确实存在的.)在safari浏览器下这个竖线的样式无法正确渲 ...

  5. 笔记本卡顿不流畅是什么原因_电脑卡顿不流畅是什么原因以及解决方法

    一般来说,引起电脑卡顿不流畅的无非就是软件和硬件问题,软件主要包括系统优化不佳,比如同时打开很多软件,造成电脑卡顿不流畅.硬件主要为电脑配置过低或者硬件故障,比如硬盘坏道.内存不足.散热不佳等造成的卡 ...

  6. 苹果手机上滑动会卡顿_苹果手机用久了出现卡顿,学会这几招,手机变得非常流畅...

    虽然苹果手机的系统以及处理器非常的强大,但是用久了之后也会出现卡顿情况,那么今天就教大家几招,解决苹果手机卡顿的方法,手机就会变得非常流畅. 一.减弱动态效果 进入苹果手机的[设置],找到[辅助功能] ...

  7. 苹果手机白屏_安卓卡顿苹果闪退,手机换代的动力原来是这些

    一般手机使用大约两年之后,就会明显感觉流畅度大不如从前.这种现象以前在安卓手机上比较常见,但其实是以流畅著称的苹果iPhone用久了也会体验变差,甚至出现了闪退.白屏等现象.想要搞懂其中的原因,我们不 ...

  8. 让苹果iOS的手机iPhone和电脑Safari浏览器支持油猴脚本

    iPhone手机端使用油猴脚本教程:可以看这篇教程https://xiaoshen.blog.csdn.net/article/details/129695622 Mac电脑端使用教程 官方的AppS ...

  9. burst什么意思_为什么Windows/iOS操作很流畅而Linux/Android却很卡顿呢?

    作者:dog250链接:https://blog.csdn.net/dog250/article/details/96362789先说是不是,再问为什么.我就知道有人会这么说,然而那样就成了一篇议论文 ...

  10. android 滑动取值_Android-自定义ViewGroup-上下滑动整体实践下

    本来上周六晚上出去散步的时候就随便想了下,当时的想法是ViewGroup要实现内部控件的滚动,1. 最终效果肯定就是子控件的重绘对吧? 2. 重绘肯定就涉及到onLayout重新定位的处理对吧? 重新 ...

最新文章

  1. Spring Boot 接入 GitHub 第三方登录,只要两行配置!
  2. nginx httpgzip模块
  3. uibmodal模态框打开另一个模态框_进阶版神笔:只需一句话、一个故事,即可生成画面...
  4. 计算机桌面堆,桌面堆 Desktop heap设置
  5. 预训练语言模型真的是世界模型?
  6. 实现qq邮箱换肤(第一季 )
  7. linux 路由跟踪命令_云计算网络知识学习-linux网络基础
  8. DataRowView 笔记
  9. linux zk服务 关闭_ORACLE数据库RAC安装部署--一键关闭Linux非必要服务
  10. Atitit 安全审计法 目录 1. 安全审计数据结构 1 2. Expame 提现流程 1 2.1. 获取提现钱的数据余额 1 2.2. 扣去余额 1 2.3. 开始safe log 2 2.4.
  11. 外螺纹对照表_螺纹螺距对照表
  12. 网络攻防实验(连更)
  13. AutoCAD2018_输出与打印
  14. Bootbox+JQuery UI Datepicker 时间输入框点击无响应
  15. python100份教材/教程分享学习,初中高级总有适合你的
  16. Oracle 锁表问题查询处理
  17. 运算放大器stb仿真与闭环增益备忘
  18. MPC+MPD听音乐
  19. 极线几何(Epipolar Geometry)
  20. OpenCV轮廓最大内接矩形(带角度)-计算与绘制(Python / C++源码)

热门文章

  1. PC 护眼模式(凑合用)
  2. ppt模板怎样用到html中,PPT模板怎么设置(ppt模板怎么竖版)
  3. Java爬携程_Java数据爬取——爬取携程酒店数据(一)
  4. css样式代码的基本格式
  5. android启用hdcp_如何在Google Android模拟器中启用Android Market
  6. 微信公共号开发教程java版——微信网页授权(八)
  7. java 图片识别_java实现图片文字识别的两种方法
  8. 从五个维度来谈谈视觉设计师如何阐述设计风格
  9. 洛谷:P1878 舞蹈课(普及/提高-,stl,堆)
  10. 如何在PowerPoint中添加幻灯片编号