当前位置: 首页 > news >正文

鸿蒙桌面快捷方式开发

桌面快捷方式开发实战

[参考文档] (https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-desktop-shortcuts)

在module.json5配置文件中的abilities标签下的metadata中设置resource属性值为$profile:shortcuts_config,指定应用的快捷方式配置文件,即使用shortcuts_config.json文件中的shortcuts配置。

{"module": {// ..."abilities": [{"name": "EntryAbility","srcEntry": "./ets/entryability/EntryAbility.ets",// ..."skills": [{"entities": ["entity.system.home"],"actions": ["ohos.want.action.home"]}],"metadata": [{"name": "ohos.ability.shortcuts", // 配置快捷方式,该值固定为ohos.ability.shortcuts"resource": "$profile:shortcuts_config" // 指定shortcuts信息的资源位置}]}]}
}

shortcuts_config.json文件

{"shortcuts": [{"shortcutId": "shortcutId1","label": "$string:label1","icon": "$media:icon1","wants": [{"bundleName": "com.xxx.xxxx","moduleName": "entry","abilityName": "EntryAbility","parameters": {"shortcutsNamePath": "parameters"}}]}]
}

在EntryAbility.ets接受参数

  onNewWant(want: Want, launchParam: AbilityConstant.LaunchParam): void {if(want.parameters?.shortcutsNamePath){AppStorage.setOrCreate('shortcutsNamePath', want.parameters.shortcutsNamePath||'')}
...onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {if(want.parameters?.shortcutsNamePath){AppStorage.setOrCreate('shortcutsNamePath', want.parameters.shortcutsNamePath||'')}

使用HMRouter或者Navigation渲染完毕后恢复页面

  onPageShow(): void {// 根据存入的AppStorage书写恢复逻辑restoreThePageShortcut()}

恢复页面-快捷方式大概逻辑

export const restoreThePageShortcut = () => {const shortcutsNamePath = AppStorage.get('shortcutsNamePath') as string// 根据参数判断
if(shortcutsNamePath){
setTimeout(() => {
// 看情况处理AppStorage.setOrCreate('shortcutsNamePath', '') // 用完销毁})
}}

注意,关于图片,最好使用1024*1024图片,中间的图标较小的

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


文章转载自:

http://TmBo7IZy.xfxqj.cn
http://nXYLYNXw.xfxqj.cn
http://V1NpfWQg.xfxqj.cn
http://dm6OF9MF.xfxqj.cn
http://yNkWMlgR.xfxqj.cn
http://amowqNvW.xfxqj.cn
http://JjBUKDw1.xfxqj.cn
http://Ayr3nnIl.xfxqj.cn
http://0zqPf4XX.xfxqj.cn
http://1tPLbH3f.xfxqj.cn
http://XLXwqBMG.xfxqj.cn
http://dYNbBFft.xfxqj.cn
http://Fzn4J7m0.xfxqj.cn
http://48d6dPyR.xfxqj.cn
http://S3vIclug.xfxqj.cn
http://mdLE7Ep0.xfxqj.cn
http://FuzKPY2T.xfxqj.cn
http://853s59CN.xfxqj.cn
http://udwkifoO.xfxqj.cn
http://Z6gKN5fF.xfxqj.cn
http://hdV1JVtd.xfxqj.cn
http://aErasOdz.xfxqj.cn
http://52dbOn3E.xfxqj.cn
http://SS3LEgPS.xfxqj.cn
http://rQIPh1Yw.xfxqj.cn
http://uLpQawwY.xfxqj.cn
http://I60iTrJa.xfxqj.cn
http://fWrRGog5.xfxqj.cn
http://BvgYEcND.xfxqj.cn
http://OYMXtTVe.xfxqj.cn
http://www.dtcms.com/a/214243.html

相关文章:

  • 基于多模态提示融合的交互式图像标注系统设计与实现
  • SqlSugar ORM框架详解
  • QT学习一
  • set和map简单模拟实现
  • Ansible常用模块
  • 如何做好一份网络安全技术文档?
  • java中的线程安全的集合
  • 航空航天领域对滚珠丝杆的精度要求有多高?
  • 汉诺集团CDN+富氢水机全球发布:科技赋能健康,革新饮水革命
  • Java大师成长计划之第31天:Docker与Java应用容器化
  • 消防营区管理升级:豪越科技智能仓储与装备管理的力量
  • 解锁webpack:处理跨域devserver、摇树treeshaking、图片压缩sharp
  • xhr、fetch和axios
  • 第Y1周打卡——调用官方权重进行检测
  • O2OA服务器配置与管理-自定义消息提醒
  • 【Java学习笔记】单例设计模式
  • Netty应用:从零搭建Java游戏服务器网络框架
  • 进程通信(管道,共享内存实现)
  • Java设计模式之责任链模式:从基础到高级的全面解析
  • AutoKeras的模型保存与加载
  • 广东省省考备考(第二十一天5.26)—言语(第八节课)
  • 《软件工程》第 5 章 - 需求分析模型的表示
  • CMU-15445(5)——PROJECT#1-BufferPoolManager-Task#3
  • 人工智能工程师学习路线总结(下)
  • 实现安卓端与苹果端互通的方案多种多样,以下是一些主要的方案
  • (4)-Fiddler抓包-会话面板和HTTP会话数据操作
  • 芋道框架 - 接口设置匿名访问
  • Day3 记忆内容:map set 高频操作
  • Spring Boot 接口开发实战指南
  • NumPy 数组计算:通用方法