鸿蒙服务卡片FA(API8)

1.安装DevEco Studio

(按照文档步骤来)
文档中心

2.创建项目

打开DevEco Studio - Create Project - Atomic service
文档中心

3.学习手册

3.1 hml学习手册

华为开发者博客

3.2 配置文件学习手册

华为开发者博客

3.3 卡片UX规范

文档中心

3.4 多规格卡片效果参考

(示例1)https://developer.huawei.com/consumer/cn/codelabsPortal/carddetails/Step-Card

(配置1)华为开发者论坛

(示例2)HarmonyOS服务卡片-防疫一码通_鸿蒙社区的技术博客_51CTO博客

(注意:示例中也是多个卡片 手动切换 显隐,做不了根据某个参数自动控制卡片规格;示例1是API6+JAVA实现的,仅config.json的配置可以参考)

3.5 容器组件:swiper、list-item……

注意:在服务卡片中不支持任何动效。

文档中心
华为开发者论坛

3.6 在hml文件中引入组件

(⚠️注意:在服务卡片中没有用,只在页面中有效)

<element name='swipeview' src='../../common/components/swipeview/swipeview.hml'></element>
<div class="container">
    <list scrolleffect="no" >
        <list-item clickeffect="false">
            <div style="flex-direction : column;">
                <swipeview bg-color='#99FF0000'></swipeview>
                <swipeview bg-color='#99FF7D00'></swipeview>
                <swipeview bg-color='#99FFFF00' hint-color='#00ae9d'></swipeview>
            </div>
        </list-item>
    </list>
</div>
<div class="todo-item"
  style="transform : translateX({{ transX }}); opacity : {{ opacity }}; background-color : {{ bgColor }};"
  on:touchstart="touchStart"
  on:touchmove="touchMove"
  on:touchend="touchEnd"
  show="{{ isShow }}"
>
  <text class="title" style="color: {{hintColor}};" >HINT</text>
  <image src="../../images/ic_swipe_praise.png" class="img"></image>
  <text class="comment" style="color: {{commentColor}}">这是一个左右滑动回弹的控件,滑动过程中透明度会动态变化,滑动到一定距离控件会消失。</text>
  <text class="txt" style="color: {{hintColor}}">Swipe to dismiss this hint</text>
</div>

参考:华为开发者博客

规范:文档中心

4. 数据交互

4.1 修改卡片data数据

import formBindingData from '@ohos.application.formBindingData';
import formInfo from '@ohos.application.formInfo';
import hilog from '@ohos.hilog';
import formProvider from '@ohos.application.formProvider';

export default {
  onCreate(want) {
    let formData = {
      "order": false,
      "distribution": false
    };
    return formBindingData.createFormBindingData(formData);
  },
  onUpdate(formId) {
    let formData = formBindingData.createFormBindingData({
      "order": false,
      "distribution": true
    });
    formProvider.updateForm(formId, formData);
  }
};

文档中心

文档中心

华为开发者博客

4.2 调用接口

import http from '@ohos.net.http';
wholePoemRequest() {
    let httpRequest = http.createHttp();
    httpRequest.request(
      "https://py.myie9.com/xuxietest/" + this.wholeInput,
      {
        method: RequestMethod.RequestMethod.GET,
        readTimeout: 15000,
        connectTimeout: 15000,
      },
      (error, data) => {
        if (error) {
          console.log("error code: " + error.code + ", msg: " + error.message)
        } else {
          let code = data.responseCode
          if (ResponseCode.ResponseCode.OK == code) {
            this.wholeContent = data.result.toString();
            let header = JSON.stringify(data.header);
            console.log("result: " + this.wholeContent);
            console.log("header: " + header);
          } else {
            console.log("response code: " + code);
          }
        }
      }
    );
  }

4.3 打日志

可以使用console.log,但是只能有一个参数,多余参数会打印不出来;

也可以使用hilog.info

华为开发者论坛

4.4 嵌入h5页面

文档中心

 华为开发者论坛

4.5 深色模式

在css上可以通过@media(dark-mode: true) 设置深色模式的样式。

5.相关问题

?在模拟机上看不见服务卡片

检查下config.json中有没有installationFree字段,取值是true还是false。为false时才能显示图标。
用鸿蒙DevEco Studio工具在模拟器和真机上都看不到桌面图标_HarmonyOS问题与回答_云网牛站

?在hml中可以使用swiper吗

可以。但是在卡片中不能自动滑动。
华为开发者论坛

?服务卡片可以动态切换大小吗

不可以,大小在config.json文件中就定好了,可以有多个卡片,但是都会展示出来,也不可以动态控制某个卡片的显隐。(详见上面多规格卡片效果参考

?harmony2.0支持高版本API吗

不支持。
华为开发者论坛

?如何在log中快速找到自己的调试日志

可以新增自定义筛选器,设置自定义的参数,然后在业务中打印时加上自己自定义的参数,就可以快速筛选出来了。

?在模拟机上为什么打印不出deviceInfo

要使用真机才会显示设备类型(import deviceInfo from '@ohos.deviceInfo')

文档中心
华为开发者论坛

使用<image>标签引入本地图片,但图片无法加载

华为开发者论坛

?怎么手动刷新

参考下java的这个华为开发者论坛

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值