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

移动应用基本的三种类型

1)  Native 应用程序

2)  Web 应用程序

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

 

Native 应用

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

优点:

1)  能够访问手机上的所有功能(GPS,相机等)

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

3)  支持离线工作(因为是在设备上运行而非web)

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:// 打开微信

 

posted on 2016-02-25 17:28  Alice.Luo  阅读(1193)  评论(0编辑  收藏  举报