第一、运行环境不同
传统的HTML5的运行环境是浏览器,包括webview,而微信小程序的运行环境并非完整的浏览器。
小程序的开发过程中会用到HTML5相关的技术(并非全部)。
第二、开发成本的不同
第三、获取系统级权限的不同
微信小程序相对于HTML5 web应用能获得更多的系统权限,比如网络通信状态、数据缓存能力等,这些系统级权限都可以和微信小程序无缝衔接,也就是官方宣称的拥有Native App的流畅性能,而这一点恰巧是HTML5 web应用经常被诟病的地方,这也是HTML5的大多应用场景被定位在业务逻辑简单、功能单一的原因。
第四、应用在生产环境的运行流畅度
长久以来,当HTML5应用面对复杂的业务逻辑或者丰富的页面交互时,它的体验总是不尽人意,需要不断的对项目优化来提升用户体验。但是由于微信小程序运行环境独立,尽管同样用html+css+js去开发,但配合微信的解析器最终渲染出来的是原生组件的效果,自然体验上将会更进一步。
如果考虑的范围只是微信内置浏览器和手机上的浏览器应用(safari、chrome)的话,差不多有几个不同点吧:最突出的差别,前端要注意分享功能!上线之前,每个页面基本都要review一边分享功能是不是完善的。
微信最近提供了新的接口,所以以后会有更多与微信贴合紧密的特性。
html5接口上的差异。safari和chrome的话提供的html5接口会更多,而微信内置浏览器的接口比较少,印象最深的是usermedia。前几天在项目里还发现,微信里固定定位的支持还是不够好,safari在这点上现在好很多了。所以如果想让
web
应用在微信里体验更好一些的话,iscroll类的模块是免不了的。
微信浏览器的兼容性问题,在android上比较明显。印象比较深的是三星的机型上不支持background-size-cover,必须使用-webkit-background-size才行。小米的输入框比较难搞。。。
开发、调试上的问题。android
chrome比较好,有远程调试功能。微信里面基本木有办法。遇到棘手的问题,一般会使用modernizr来做特性检测,或者使用远程log工具调试。