鸿蒙HarmonyOS服务卡片实战

引言

在现代开发中,服务卡片 是不可或缺的一部分,比如音乐,天气类等应用,官网的介绍中写道:卡片让您便捷地预览服务信息,例如查看天气或日历日程等内容。您可将卡片添加到屏幕上,让这类信息触手可及。您还可按喜好选取不同样式和排列方式,打造个性化桌面。

大体思路

  1. 创建服务卡片
  2. 应用与服务卡片的交互
  3. 刷新卡片内容
  4. 应用端主动更新卡片信息

创建服务卡片

首先,我们需要打开Edit Configurations,选中Deploy Multi Hap,将DEploy Muliti Hap Packages 的框打上勾

然后应用就可以愉快的进行服务卡片的开发了:

创建步骤:选中Entry,new,Service Widget

在弹出框中选选择想要创建的服务卡片类型,本文中选中默认的文本卡片

创建完成后除了serviceCard页面还会生成一个EntryFormAbility文件,和EntryAbility不同的是,EntryFormAbility继承了FormExtensionAbility,而EntryAbility继承了UIAbility。可以理解他们是2个进程。

创建完服务卡片,先运行起来后效果:

我们可以观察到,创建的服务卡片,在点击卡片后有如下代码

postCardAction(this, {
        action: this.ACTION_TYPE,
        abilityName: this.ABILITY_NAME,
        params: {
          message: this.MESSAGE
        }
      });

postCardAction是给卡片添加意图,this代表当前卡片,action是类型,abilityName是打开哪个Ability,params是需要给应用进程传递的数据(服务卡片在另外一个进程),点击完服务卡片后发现,跳转到了应用首页,那能否跳转到指定页面呢?

应用与服务卡片的交互

在卡片上添加2 个按钮,去掉原来的整个卡片的onClick,添加2个按钮

Button('首页').onClick(()=>{
          postCardAction(this,{
            'action':'router',
            'abilityName':'EntryAbility',
            'params':{
              targetPage:"Index"
            },
          })
        })
Button('我的').onClick(()=>{
          postCardAction(this,{
            'action':'router',
            'abilityName':'EntryAbility',
            'params':{
              targetPage:"MinePage"
            },
          })
        })
      }

在点击按钮的时候把我们需要跳转的page名称传给应用,那如何接受这targetPage呢?

我们在EntryAbility里看到很多空方法,其实就是Ability的生命周期,有过原生安卓开发经验的,可以将它理解为application的生命周期回调函数。

//要访问的页面
let selectPage =''
export default c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值