移动应用基本的三种类型javascript
1) Native 应用程序java
2) Web 应用程序web
3) 混合应用程序(Hybrid: Native应用和web应用结合)api
直接运行在电脑上或者智能手机上的本地应用微信
优势:app
1) 可以访问手机上的全部功能(GPS,相机等)less
2) 更好的运行速度,性能和用户体验性能
3) 支持离线工做(由于是在设备上运行而非web)url
4) 在应用商店下载,而且在主屏幕上轻易的找到应用图标(符号人们的使用习惯)操作系统
缺点:
1) 开发成本较高
2) 范围限制较多(智能载特定的操做系统上运行设备)
3) 未知的部署时间(应用商店审批限制)
4) 用户必须手动下载最新版本
优势:
1) 适用范围广(覆盖全部的智能手机)
2) 开发成本低
3) 方便,快捷的部署(无需提交到应用商店)
4) 用户总能访问到最新版本(没有手动更新需求)
缺点:
1) 较慢的性能体验(大部分须要连接到互联网)
2) 用户体验较差
3) 限制用户使用功能(好比:相机,GPS等)
是本地应用和web应用混合开发的一款应用,一部分运行在设备上,一部分运行在web上。
优势:
1) 支持多平台访问
2) 手机功能均可以访问
3) 适用于应用商店
4) 部分支持离线功能
缺点:
1) 用户体验不如本地应用
2) 性能速度较慢
至于哪一个应用好,须要根据如下状况,视状况而定。
App
的体验和开发周期何者为先?APP
的更新周期是否频繁?
(一) Native 调用JS
1) native经过string调用js
2) webview 调用js中的eval方法,将string转化为js方法
3) webview调用js方法
(二)Js 调用 Native
1) javascript改变url,经过url传递调用的方法和参数
2) webview监听到url的变化,而且探测到url中定义的方法和参数
3) 寻找对应的映射表,找到native对应接口api进行调用
4) 执行javascript调用方法时传入回调string并添加数据
5) Webview解析string转化为javascript进行调用
app自身能够自定义url schema,而且把自定义的url注册在调度中心, 例如