请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册
搜索

技术分享 【征文】快应用从开发到上线

0
回复
77
查看
[复制链接]

1

主题

7

帖子

40

积分

 楼主| 2018-12-3 00:09:22 显示全部楼层 |阅读模式
本帖最后由 Vanessa 于 2018-12-3 00:26 编辑

背景

通过 几篇文章 逐步了解了快应用。一开始没太在意,但听的多了,看的多了,用的多了,就觉得还不错。大家都可以尝试一下,相信会有不错的收获。

新手篇
上手超级容易的,只是偶尔写着写着就遇到一些小坑,加上新生态,所以难免要自己多折腾下。

初始化
1. 建项目
  1. hap init <ProjectName>
  2. cd ProjectName
  3. npm install
  4. npm run server
  5. npm run watch
复制代码


2. 安装 快应用调试器 后扫描 npm run server 在控制台输出的二维码,点击开始调试。
3. 修改任意文件点击保存,手机和 PC 端的调试器将会进行同步更新。

开发
  • 目录结构
    一开始根据自己的经验建立了目录,然后又都删了,规规矩矩的按照文档来。虽然我不太喜欢把页面平铺到和工具、资源等同级目录,但按照文档来其实是在方便自己:使用默认配置,减少出错几率,加大开发速度。
    以下是我的目录结构,可供参考:
    1. ├─ sign                      rpk包签名模块
    2. ├─ src
    3. │   ├─ Common               公用的资源和组件文件
    4. │   │   ├─ componentA       组建 A
    5. │   │   ├─ img              图片
    6. │   │   └─ less             样式
    7. │   ├─ Demo                  页面目录
    8. │   │   └─ index.ux         页面文件,可自定义页面名称
    9. │   ├─ util                  存放请求、验证等通用方法
    10. │   ├─ app.ux                APP文件,可引入公共脚本,暴露公共数据和方法等
    11. │   └─ manifest.json         项目配置文件,配置应用图标、页面路由等
    12. └─ package.json              定义项目需要的各种模块及配置信息
    复制代码

  • 添加 less 支持 npm install -D less && npm install -D less-loader
  • 配置可参见 官方文档。主要是 router 和 features, versionCode 记得每次发布递增就好
  • 顺着看一下官方文档目录
  • 尽情的书写代码吧

打包
  • 生成签名
  1. openssl req -newkey rsa:2048 -nodes -keyout private.pem -x509 -days 3650 -out certificate.pem
  2. openssl req -newkey rsa:2048 -nodes -keyout private.pem -x509 -days 3650 -out certificate.pem
复制代码

  • 在工程的 sign 目录下创建 release 目录,将私钥文件 private.pem 和证书文件 certificate.pem 拷贝进去
  • npm run release
  • dist/com.liandi.chainbook_release_5_20181130033054.rpk 就是你的发布包了

避坑指南
  • 组建中 public 数据无法获取,只能使用官方不建议使用的 data
  • 目录结构不要自己折腾了,否则 router 配置比较麻烦
  • 父组建的 style 子组建无法使用,需要提取公用的再 import
  • 三元表达式换行,{{}} 无法进行计算,将会直接显示 {{...}},需要使用 private 计算后再渲染
  • A 页面跳转到 B 页面且 B 页面中没有子组建时,在 onInit 中,使用 fetch,vmInst.$visible 会为 false,导致 fetch 中使用了推荐的 bindPage 后,回调无法继续执行。因此需要在 onShow 中使用
  • A 页面跳转到 B 页面且 B 页面中有子组建,且子组建需要进行 fetch 时:B 页面中需使用 onShow
  • B 页面是初始化页面且 B 页面中有子组建,且子组建需要进行 fetch 时:B 页面中需使用 onInit

上线篇
不已上线为目的的开发都是耍流氓

步骤
  • 厂商帐号绑定 页面逐一绑定
  • 绑定过程中记得要到各产商开发者平台上认证公司账号
  • 努比亚和魅族的开发者平台提示需要购买授权码才可以注册,这时候不要急着购买,先绑定账号,然后他会在厂商帐号绑定页面把授权码发给你
  • 等各产商都认证授权后就可以开始上架你的应用

挫折
  • 第一次上架感觉审核的不太严,后面的是换人了还是怎么了,好严。但基本都是由于快应用本身的 bug 拒绝我更新我的应用。感觉好冤


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册