Native App vs Web App 以及 Hybrid App的实现原理

移动应用基本的三种类型javascript

1)  Native 应用程序java

2)  Web 应用程序web

3)  混合应用程序(Hybrid: Native应用和web应用结合)api

 

Native 应用

直接运行在电脑上或者智能手机上的本地应用微信

优势:app

1)  可以访问手机上的全部功能(GPS,相机等)less

2)  更好的运行速度,性能和用户体验性能

3)  支持离线工做(由于是在设备上运行而非web)url

4)  在应用商店下载,而且在主屏幕上轻易的找到应用图标(符号人们的使用习惯)操作系统

缺点:

1)  开发成本较高

2)  范围限制较多(智能载特定的操做系统上运行设备)

3)  未知的部署时间(应用商店审批限制)

4)  用户必须手动下载最新版本

 

Web 应用程序

优势:

1)  适用范围广(覆盖全部的智能手机)

2)  开发成本低

3)  方便,快捷的部署(无需提交到应用商店)

4)  用户总能访问到最新版本(没有手动更新需求)

 

缺点:

1)  较慢的性能体验(大部分须要连接到互联网)

2)  用户体验较差

3)  限制用户使用功能(好比:相机,GPS等)

 

混合应用(Hybrid)

是本地应用和web应用混合开发的一款应用,一部分运行在设备上,一部分运行在web上。

优势:

1)  支持多平台访问

2)  手机功能均可以访问

3)  适用于应用商店

4)  部分支持离线功能

缺点:

1)       用户体验不如本地应用

2)       性能速度较慢

 

至于哪一个应用好,须要根据如下状况,视状况而定。

  1. App的体验和开发周期何者为先?
  2. APP的更新周期是否频繁?
  3. 开发资源
  4. 应用平台

 

Hybrid 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注册在调度中心, 例如

  • ctrip://wireless 打开携程App
  • weixin:// 打开微信
相关文章
相关标签/搜索