HarmonyOS技术社区 · 2020年12月10日

#2020征文-手表#【纯干货】手把手教你JS开发智能表应用

目录:
前言
配置
开发
调试
结尾

前言

本人于9月中旬,开始接触鸿蒙。那时候还只是抱着尝新的心态,跟着官方文档,写出了TV版的hello world和Lite Wearable的hello world,现在回想起来,还是有点激动。

到了9月下旬,公司收到了华为寄过来的搭载鸿蒙系统的智能手表,因为某种原因,智能表开发的任务落到了我头上。我是前端开发,说实话,当时接到这个任务时候,其实没多少底,毕竟不懂APP开发的流程,虽说鸿蒙支持JS开发,但其实心里也清楚,里面应该还是有很多坑要踩的,事实证明,坑是真的多。哈哈哈。

今天为什么有时间写这篇文章呢?因为我的智能手表应用已经开发、联调、测试完毕了,马上要上架啦。

话不多说,让我们进入正题。

配置

1、准备工作(下载、安装、环境配置、创建项目等)

这个过于简单,就毋庸赘言了,请参考官方文档

生成的目录结构,就是这个样子。对于安卓开发来讲,应该是很熟悉的,但对于前端来讲,就很懵逼啊。

什么gradle文件,这是啥啊,咦,为什么还有java,我不是选择的js模板呢?很是疑惑。先不管了,硬着头皮干。

图片.png

2、config.json权限列表配置(fetch、network等)

鸿蒙应用里,image标签想要使用https的外链资源,必须要配置权限,同理,fetch接口请求也是如此。

我自己在开发过程中,是配置了网络请求的权限,以及网络状态的权限。

"reqPermissions": [
  {
    "name": "ohos.permission.GET_NETWORK_INFO"
  },
  {
    "name": "ohos.permission.GET_WIFI_INFO"
  },
  {
    "name": "ohos.permission.INTERNET",
  },
],

3、离线签名与签名配置 (用于真机调试)

如果用不到真机调试,可忽略这一步。

请参考文档

编辑器的版本不一样,使用的密钥文件不一样。有的是.p12,有的是.jks。

如果你生成的是jks,那么你可能需要转换p12,笔者就转过,可自行百度。

申请开发者证书和调试 Profile

request.json 如下

{ 
    "developerRequest": { 
        "Applicant": "XXXX", 
        "ApplicationName": "XXXX", 
        "CN": "XXXX", 
        "validYear": "1" 
    }, 
    "provisionRequest": { 
        "debug-info": { 
            "device-ids": [ 
                          ""  // 调试真机的UDID
            ] 
        }, 
        "permissions": { 
            "restricted-permissions": [ 
                "harmonyos.permission.ANSWER_PHONE_CALLS" 
            ] 
        }, 
        "bundle-name": "你的包名", 
        "developer-id": "你的开发者ID" 
    } 
}

然后将你生成csr、p12还有这个request.json一并发给华为的人,然后他们会给你cer和p7b的文件,你直接导入就行了

图片.png

至此,真机调试的准备工作我们就已经完成了。

真机调试打出来的包是hap包,如果要上架的话,必须是.app的文件,所以我们还要在项目配置里,导入这些证书等,同上一步操作

图片.png

4、集成 Wear Engine SDK(手表和APP通讯)

APP和手表都要集成对应的SDK,才能通讯

添加编译依赖

1、联系华为接口人获取 SDK。
2、将 SDK 解压后,把 SDK 中的 har 包放在项目\entry\ libs 目录下。
3、打开应用级的 build.gradle 文件。
图片.png

4、在“dependencies ”中添加如下编译依赖,,然后同步
图片.png

5、生成穿戴设备侧签名证书指纹、设备检测

手表侧要配置APP的指纹和包名,APP侧要配置手表侧的指纹和包名

请参考文档

手表侧配置APP的包名和指纹代码如下

图片.png

6、编译构建生成HAP或者生成APP

请参考文档

开发

开发倒没有什么好说的,就是正常的前端那一套,布局、样式、逻辑。需要注意的是,设备的分辨率是454*454,圆形屏幕,需要留出安全距离。

如果手表需要和手机APP进行交互的话,JS的能力比较弱,需要依赖JAVA来做中转。

JAVA代码不是我写的,直接照抄的官方文档,然后让安卓客户端改造了一下。

我做的这个项目就是这么做的,目录如下

解锁更多章节》》》


作者:dadtakesmefly
想了解更多内容,请访问: 51CTO和华为官方战略合作共建的鸿蒙技术社区https://harmonyos.51cto.com

推荐阅读
关注数
3008
内容数
446
华为鸿蒙相关技术,活动及资讯,欢迎关注及加入创作
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息