目前开发手机app的几种方式
原生脚本/NativeScript:将原生API封装成JavaScript接口,这有点像前端的nodejs。NativeScript方式 与原生相比性能损失不大(据称只有10%左右),优点是开发语言统一使用JavaScript,缺点是 要针对不同的平台分别开发。
原生+web/ Hybrid:使用原生技术开发,部分页面调用web。优点是比纯原生开发周期短, 页面更新方便,如支付宝,还有很多app的详情页面。缺点:需要原生和web配合。
混合/Hybrid:使用web技术开发App,使用Cordova/PhoneGap之类进行打包封装。优点是采用标准的web技术开发, 避免了不同平台原生开发体系的学习,学习成本低,上手快、效率高,一次开发 微信 wap app全部搞定;缺点是app 在android平台性能上有一些损失,但是相信硬件的发展会接近原生。
ionic属于hybrid开发模式,本质上是将移动web应用与浏览器打包,优点和缺点都很明显。
怎么判断一个APP是原生APP、混合APP还是WEB APP ?
1、看断网情况
通过断开网络,刷新页面,观察内容缓存情况来有个大致的判断,可以正常显示的就是原生写的,显示404或者错误页面的就是html页面。
2、看布局编辑
3、看复制文章的提示,需要通过对比才能得出结果。
比如文章资讯页面可以长按页面试试,如果出现文字选择,粘贴功能的是H5页面,否则是native原生的页面。
有些原生APP开放了复制粘贴功能或者关闭了,而H5的CSS屏蔽了复制选择功能等情况,需要通过对目标测试APP进行对比才可知。
在支付宝APP、蚂蚁聚宝是可以判断的。
4、看加载的方式
如果在打开新页面导航栏下面有一条加载线的话,这个页面就是H5页面,如果没有就是原生的。
5、看app顶部,导航栏是否会有关闭的操作
如果APP顶部导航栏当中出现了关闭的按钮或者关闭的图标,那么当前的页面是H5页面,原生的不会出现(除非设计开发者特意设计),美团、大众点评的APP、微信APP当加载H5过多的时候,左上角会出现关闭两个字。
6、判断页面下拉刷新的时候(前提是要有下拉刷新的功能)
如果页面没有明显刷新现象的是原生的,如果有明显刷新现象(比如闪一下)的是H5页面(Ios和Android)。比如淘宝的众筹页面。
7、下拉页面的时候显示网址提供方的一定是H5页面。
8、利用系统开发人员工具
找到手机的设置,开发者选项,显示布局边界,选择开启后再去查看APP整体布局边界,这样所有应用控件布局就会一目了然。
如果是native APP那么每个按钮、文字、图片都是红色的线显示这个控件的布局情况。如下图的微信:
如果是web APP那么应该就是一个webview去加载网页,webview作为一个控件,只有一个边界框,即只有屏幕边才有红色线,如下图:
混合APP 则是native 与 webview 混排的界面,如下图红色线框是各控件的绘制边界,中间那一大块布局丰富的界面没有显示出很多边界红线,就是网页实现的。如下图的京东: