快应用:

快应用是九大手机厂商基于硬件平台共同推出的新型应用生态。用户无需下载安装,即点即用,享受原生应用的性能体验。
3月20日在北京联合召开快应用标准启动发布会。过去1天了,官网(快应用官方网站)上的文档和教程也都大致齐备了,一起体验试试。
 
本文参考官方文档中心:环境搭建
本文代码地址:SmileSmith/quickapp-demo
吐槽一下:官网打开文档中心的默认进入了注册流程? 我是已经登录的状态了。。。

一、环境搭建

1)Node环境安装快应用toolkit

npm install -g hap-toolkit

 

2)Node环境用toolkit初始化demo项目

hap init <ProjectName>

 

得到如下文件目录:
├── node_modules
├── sign                      rpk包签名模块
│   └── debug                 调试环境
│       ├── certificate.pem   证书文件
│       └── private.pem       私钥文件
├── src
│   ├── Common                公用的资源文件和组件文件
│   │   └── logo.png          manifest.json中配置的icon
│   ├── Demo                  页面目录
│   |   └── index.ux          页面文件,文件名不必与父文件夹相同
│   ├── app.ux                APP文件(用于包括公用资源)
│   └── manifest.json         项目配置文件(如:应用描述、接口申明、页面路由等)
└── package.json              定义项目需要的各种模块及配置信息,npm install根据这个配置文件,自动下载所需的运行和开发环境

 

3)依赖安装

进入项目根目录安装所有依赖的npm包
npm install

 

如果安装速度慢,可以尝试在项目根目录创建.npmrc,并写入一个全能npm镜像指向:
registry=https://registry.npm.taobao.org 
disturl=https://npm.taobao.org/dist 
chromedriver_cdnurl=http://cdn.npm.taobao.org/dist/chromedriver 
operadriver_cdnurl=http://cdn.npm.taobao.org/dist/operadriver 
phantomjs_cdnurl=http://cdn.npm.taobao.org/dist/phantomjs 
fse_binary_host_mirror=https://npm.taobao.org/mirrors/fsevents 
sass_binary_site=http://cdn.npm.taobao.org/dist/node-sass 
electron_mirror=http://cdn.npm.taobao.org/dist/electron/

 

4)IDE插件安装

如果你是VSCode用户可以参考如下:
a. 搜索Hap安装语法模板、语法高亮的支持(体验类似Vue):
b. 项目自带的eslint对ux文件似乎不起作用,依赖包里面的有个插件“eslint-plugin-hybrid”,可能是对ux文件的eslint支持,但是diydyq/eslint-plugin-hybrid上已经8个月没更新了,期待后续支持
c. 格式化代码用之前的Prettier就行

5)调试器和调式平台安装

调试器APK:操作调试
开发调试平台APK:模拟真实的快应用平台,所有的前端代码编译后都是在这个平台上运行
需要注意的是:
a. 单独安装调试器是无法使用的,按钮全部置灰,需要有rpk的平台才能使用
b. 我在win下用包含arm指令集的Genymotion一直报错,只能有真机调试
 

二、开发调试

1)在Node环境下启动开发环境Server

npm run server

会在命令行出现二维码

2)用手机的调试器扫码打开

 
这里同时会打开Inspector调式页面
 
PS:在调试器右上角菜单点击设置:填入服务器地址,就可以点击【在线更新】刷新App

3)新开Node环境启动实时编译推送(热更新)

npm run watch

 

PS:这里每次更新确实重新编译打包了,但是手机上的通知似乎没生效,不会自动刷新App,需要点击【在线更新】后才能刷新应用
PS2:从代码逻辑上看是notify.js访问调式手机上的某个地址完成通知,实际上并没有生成所需要的client.json文件

 

PS3:查看快应用工具hap-tools的代码,也没看到类似写入client.json的逻辑

 

 

三、项目基础设计

这部分还没想好,这个hap开发思路类似Vue和小程序的结合版(很像wepy?),组件和路由这些都已经处理好了。其他的初步想法是尝试sass语法,类vuex的实现等

1)组件

2)路由

3)原生接口

4)全局状态管理

5)类型检测

 
待续。。。

版权声明:本文为simleSmith原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/simleSmith/p/8618256.html