鸿蒙原生开发手记:02-服务卡片开发

少湖说
• 阅读 317

介绍

服务卡片是一直桌面小组件,可以放置在桌面上等位置,一触即达。

服务卡片分为静态卡片和动态卡片两类。本文介绍静态卡片。

创建

回到 DevEco,在目录entry右键,点击创建 Service Widget,选择 Static Widget, 点击 Next。

鸿蒙原生开发手记:02-服务卡片开发

输入名称,选择支持的卡片大小,点击确定创建卡片。

其中 22 代表 2行2列,12 代表1行2列。

鸿蒙原生开发手记:02-服务卡片开发

编写卡片界面

交互

点击事件传参

这里使用 ArkUI 编写界面,不过不能使用点击事件,转而应该使用 FormLink,相关的事件在 formability 侧接受,通过不同的参数,调用 router.push 打开不同的页面。

FormLink({
  action: this.ACTION_TYPE,
  abilityName: this.ABILITY_NAME,
  params: {
    action: this.MESSAGE
  }
}) {
...
}

参数接收

entryability 中的 onCreateonNewWant 生命周期中,来接收参数

  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {

    if(want?.parameters?.params) {
      let params: Record<string, Object> = JSON.parse(want.parameters.params as string);
      this.selectPage = params.action as string;
      console.log("selectPage", this.selectPage);
    }
  }

  onNewWant(want: Want, launchParam: AbilityConstant.LaunchParam): void {
    console.log('onNewWant');
    if (want?.parameters?.params) {
      // want.parameters.params 对应 postCardAction() 中 params 内容
      let params: Record<string, Object> = JSON.parse(want.parameters.params as string);
      this.selectPage = params.action as string;
      hilog.info(DOMAIN_NUMBER, TAG, `onNewWant selectPage: ${this.selectPage}`);
    }
    if (this.currentWindowStage !== null) {
      this.onWindowStageCreate(this.currentWindowStage);
    }
  }

注意事项

1.运行时,请使用正常模式,服务卡片不支持 HotReload ,而且热重载模式下卡片无法正常显示。

参考资料

点赞
收藏
评论区
推荐文章
仲远 仲远
2年前
堆叠大陆 Stacklands for Mac(卡牌游戏)v1.3.4中文原生版
堆叠大陆(Stacklands)forMac是一款策略卡牌游戏,由ThunderboxEntertainment开发。在这个游戏中,玩家需要构建自己的卡组并与其他玩家进行对战。堆叠大陆的游戏玩法有两个主要元素:卡片和地图。每张卡片代表一个单位,如士兵、法师
Stella981 Stella981
3年前
App唤起微信小程序和回调
在同一开放平台账号下的移动应用及小程序无需关联即可完成跳转,非同一开放平台账号下的小程序需与移动应用(APP)成功关联后才支持跳转。可在“管理中心移动应用应用详情关联小程序信息”,为通过审核的移动应用发起关联小程序操作。唤起App打开下程序他有两种方式:1,通过App分享小程序卡片到微信,然后在微信上点击小程序卡片打开小程序,
Stella981 Stella981
3年前
HDOJ 1716 排列2(next_permutation函数)
ProblemDescriptionRay又对数字的列产生了兴趣:现有四张卡片,用这四张卡片能排列出很多不同的4位数,要求按从小到大的顺序输出这些4位数。Input每组数据占一行,代表四张卡片上的数字(0<数字<9),如果四张卡片都是0,则输入结束。Output对每组卡片按从小到大的顺序输出所有能由这四张卡片组成的4位数
程序员一鸣 程序员一鸣
3天前
鸿蒙开发:一文了解桌面卡片
在鸿蒙开发中,服务卡片虽然功能丰富,但也存在一些限制。例如,它不支持极速预览、断点调试和HotReload热重载等功能,同时也无法使用setTimeOut。此外,开发过程中还面临其他约束,如不支持导入动态共享包、使用native语言开发或加载nativeso。目前,服务卡片仅支持基于ArkUI的开发方式,且不支持跨平台开发,仅能使用声明式范式的部分组件、事件、动效、数据管理、状态管理和API能力。
程序员一鸣 程序员一鸣
3天前
鸿蒙开发:简单实现一个服务卡片
form_config配置文件里面可选的属性非常之多,以上的表格,并未列举全面,大家在写的时候,一定要去官方文档进行查阅。
程序员一鸣 程序员一鸣
3天前
鸿蒙开发:绘制服务卡片
服务卡片的绘制,和正常的UI绘制一样,需要注意是否支持卡片的标识,还有一点需要注意的,服务卡片虽然可以设置多个,但是最多只支持配置16个卡片,按照官方解读,若超过16个,则保留配置的前16个。
程序员一鸣 程序员一鸣
3天前
鸿蒙开发:CodeGenie万能卡片生成
CodeGenie是DevEcoStudio中一个自带的AI工具,在之前的文章中,也写过两篇文章,主要针对代码生成、知识问答和编译报错智能分析做了概述,唯独忘记了介绍它的另一个十分强大的功能,那就是万能卡片生成。
AIGC系统中聊天小助手卡片小组件嵌套设计实践
1.项目描述领航者卡片样式较多,有些卡片比较近似;可以用嵌套方案,实现一个卡片,多个子单元可拔插组件式卡片。2.逻辑设计2.1卡片示例聊天框提示3通用提示卡片设计通用卡片中加载//卡片组件unit加载...if(!options?.dataType)if(
少湖说 少湖说
7个月前
鸿蒙原生开发手记:03-元服务开发全流程(开发元服务,只需要看这一篇文章)
导读本文带来非常详细的元服务开发及上架全流程介绍,包含元服务介绍、创建、服务卡片、签名、开发测试、签名打包、上架审核等,一应俱全。元服务简介元服务是一种新的服务提供方式开发简单、免安装、易于获取和使用相较于小程序,系统原生,丝滑流畅轻量应用程序形态,具备秒