1.支持一些常见的对原生应用的适配。例如,如果壳中设置了启动画面,则当Web应用加载完成后,应自动隐藏启动画面;支持原生应用使用的页面栈机制,像在后退时可以跳过(pop)某些页面;安卓平台上可以退出应用;苹果平台上页面顶端应留出部分空间给系统状态栏等等。
2.支持与原生壳交互,从而实现尽量少的用户版本更新。例如,应用被原生壳加载后,可以调用壳支持的原生功能;壳会升级,会有多版本并行存在,框架必须提供机制让应用可以区分和兼容不同版本的壳。
3.本质上,它应该是“单网页应用”。单网页应用,简称SPA,有时也译成“单页应用”,这里的“页”指的是网页(Web Page),与应用中的每个逻辑页(Page)是两个概念。它强调无刷新的体验,即只有一个网页,在打开应用后,每次只会更新网页的局部显示,不会像传统网站那样每次打开另一个网页时整体刷新。
4.MVC架构。数据与界面元素一定是分离的,前端与后端应用服务器间只会传输动态业务数据,不会混合数据与界面。框架提供C(Controller,控制器),开发者操控界面元素V(View,视图),与后端服务间只会传输业务数据M(Modal),和原生一样节省流量。
5.支持“多页面应用”,提供某种页面路由方式。应用程序在逻辑上是由多个应用页面(Page)构成的。在移动端,一次显示一个页面,页面间可流畅地相互切换,提供与原生应用页面类似的体验。