一、PC端
1、nwjs
2、electron
github出品,electron基于chromium和nodejs,使用html,css,js构建跨平台的桌面应用,兼容mac,windows,linux。
二、移动端
现有3类主流APP,分别为:Native App(原生app),Web App,Hybrid App(混合模式移动应用)。
1、 原生页面
用java开发安卓程序,用object-c开发ios程序。
A、优势
- 运行速度比较快;
- 能使用设备的底层功能,如摄像头、方向传感器、重力传感器、拨号、GPS定位、语音、短信、蓝牙,访问文件系统,提供离线服务等;
- 在界面设计、功能模块、操作逻辑等层面相较web更易做到App的便捷性和舒适性,功能更加强大;
- 节省流量。
B、劣势
- 不同的操作系统(如Android和iOS)需要独立的进行开发,使用其各自的开发包、开发工具和控件;
- 每次有更新,都需要重新打包一次发布到应用平台上,且每次要向各个应用商店进行提交审核,之后用户需要手动进行点击更新安装(安装成本较高);
- 开发成本比较高,尤其需要适配各种机型时(如Android应用,需要适配各种Android手机)。
2、html页面
A、优势
- 由于是运行在浏览器上,所以只需要开发一次便可以在不同的操作系统上显示;
- 迭代版本时,不需要打包便可以发布(实时更新、快速迭代),与云端实现实时数据交互;
- 开发成本相对较低,对浏览器的适配较简单,且发布门槛相对较低。
B、劣势
- 每次打开页面,都得重新加载,获取数据;
- 过于依赖网络,速度无法保证。特别在弱网环境下,不仅耗费流量而且加载缓慢,就算是WiFi情况下也不容乐观;
- 只能使用有限的设备底层功能(无法使用摄像头、方向传感器、重力传感器、拨号、GPS、语音、短信、蓝牙等功能);
- 仍处于发展阶段,部分功能无法在基于现有技术的浏览器基础上实现,且无法全面的显示最完美的用户体验,只能用现有技术去弥去找最佳解决方案。
3、混合开发
A、ionic
是一款基于angularjs和cordova的html5移动app开发框架,免费开源。
B、PhoneGap
adobe公司所有,PhoneGap是一款开放源代码的移动设备开发框架,旨在让开发者使用HTML、Javascript、CSS等Web APIs开发跨平台的移动设备应用程序。
C、Cordova
apache基金会所有,Cordova是基于PhoneGap的,用html,css,js开发app,免费开源,访问设备摄像头,麦克风等原生功能。一次开发,随处使用。性能一般。
https://en.wikipedia.org/wiki/Apache_Cordova
https://github.com/apache?utf8=%E2%9C%93&q=cordova&type=&language=
D、react-native
facebook所有,一次学习,随处开发。性能不错。
三、如何区分Hybrid APP中的页面是用原生控件实现还是用webview载入html页面来实现?
1、看断网情况
断掉手机网络,打开页面,如果正常显示,就是原生页面,显示404或者错误页面,就是html页面。
2、看布局边界(最有效)
打开安卓手机,开发者选项,显示布局边界(需要打开,默认是关闭的)
如果布局有很多红框,就是原生页面,如果布局显示一整块,就是html页面。
3、 看加载方式
如果没有加载进度条,就是原生页面,否则就是html页面。
4、看网址提供方
下拉页面时,显示网址提供方的一定是html页面。
5、抓包
打开相应界面,抓取数据包,如果url返回比较完整的html代码,就是webview实现的。