很多APP使用H5编写,但APP链接的是远程的url的模式,导致了APP的用户体验极差,因为当你使用远程的H5 url的时候,打开H5页面的速度由网络决定,而不是由手机性能决定,假如用户在没有网络的地方打开APP,甚至出现迟迟打不开APP界面,出现白色空白页的情况,造成用户一直在等待。

其实APP使用H5,不应该使用远程的H5 url,而是应该使用file://本地路径的方法打开本地的H5页面,而不是使用http://远程路径的方式打开H5页面,这样APP的打开速度就可以跟原生相比,因为这样打开速度就不会跟网络速度相关,速度可以跟原生一样秒开。而且界面打开后,加载数据的时候使用ajax异步加载,先让界面出现,提示用户等待,而不使用同步加载,这也是提高H5体验的关键。这样APP界面的打开速度就跟手机的性能相关,而不是跟网络速度相关。

为什么我说用H5开发的APP体验可以比APP还好呢?因为这来自于成熟的CSS标准和成熟的js Ui框架技术,因为一种很炫的界面,使用css实现起来非常简单,甚至可以下载到非常炫的css样式,假如使用原生自己来编写同样的UI,实现起来可能会非常麻烦。因此,目前很多公司使用本地H5来渲染界面做出来的界面,反而非常好看,但却因为使用了错误的远程URL模式却又影响了用户体验。

  本地H5模式+H5热更新+支持ajax跨域,才是使用H5的最佳解决方案。为什么要跨域呢?因为我们打开本地H5的时候使用的是file://本地路径的方法打开的,因此假如我们使用http或https访问外部api的时候,是需要跨域支持的。幸运的是,安卓的webview和ios的UIwebview组件是可以设置支持跨域的。不过假如自己打包APP,要实现所有这些,还要兼容所有手机,也是门槛比较高的,甚至比开发原生APP的门槛还高。因此,为了用户体验,还是需要使用专业的打包工具进行打包,还是不要自己去打包H5 app。

使用什么工具打包呢?可以使用hbuilder进行打包,但是hbuilder不能实现自动的热更新。在这里我推荐一个非常优秀的在线打包本地H5的工具,我使用过,非常好用。
      https://www.yunedit.com

这个工具能打包本地H5模式的app,还能在后台热更新H5代码,还能支持跨域访问ajax,还有yeui js框架调用原生功能。

总结下,其实用H5开发体验不好,还是因为程序员水平的问题,APP打包工程师的水平问题,导致了无论前端H5工程师写的代码无论多出色,最后都因为网络问题使得APP体验极差。因此使用专业的打包工具或打包平台打包,还是非常有必要的。

最新文章

  1. ToolBar和DrawerLayout的使用实现侧拉栏抽屉的开闭
  2. 不能用con作为类名
  3. swif-throws异常抛出
  4. mavan 命令行创建项目
  5. PHP商品秒杀计时实现(解决大流量方案)
  6. 51nod算法马拉松13
  7. level分层次输出内容添加leve
  8. linux下配置redis
  9. windows关机命令
  10. css3 绘制优惠券
  11. windows下用过VMware安装MAC OS X苹果系统
  12. C++虚表(V-Table)解析
  13. bzoj2120 数颜色 分块
  14. Redis详解(一)------ redis的简介与安装
  15. elasticsearch health yellow
  16. 【算法】【python实现】二叉搜索树插入、删除、查找
  17. Android为TV端助力 转载自jguangyou的博客,XML基本属性大全
  18. jQuery动态改变input框的属性
  19. POJ3904 Sky Code
  20. 如何使用C++11实现C#属性概念设计

热门文章

  1. LaTeX中的插图
  2. .Net Core官方的 JWT 授权验证
  3. 2014_07_11_VGA基础及封装
  4. 【DKNN】Distilling the Knowledge in a Neural Network 第一次提出神经网络的知识蒸馏概念
  5. day3(django配置跨域)
  6. MySQL索引(一)索引基础
  7. Python中sort、sorted的cmp参数废弃之后使用__lt__支持复杂比较的方法
  8. Oracle函数:trunc、round、ceil和floor
  9. jQuery无限滚动
  10. bootstrap 扩展参数