HarmonyOS 鸿蒙Next 一键添加桌面卡片流程—FormMenu

发布于 1周前 作者 gougou168 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 一键添加桌面卡片流程—FormMenu

很多伙伴开发元服务/应用卡片时 都用过文本引导用户添加卡片,链路长且不宜增加卡片活跃度,下面为大家分享实战中结合API实现两步添加卡片。

FormMenu介绍:

官方解释:本组件封装了一个“添加至桌面”菜单,用于实现应用内长按组件生成“添加至桌面”菜单,点击该菜单,触发卡片添加至桌面操作。

 16a21f945fda3291869bd228ad762740.gif

实现代码:

  @Builder
AddCardMenu() {
Menu() {
AddFormMenuItem({
bundleName: getContext().applicationInfo.name,
abilityName: ‘EntryFormAbility’,
parameters: {
‘ohos.extra.param.key.form_dimension’: 3,
‘ohos.extra.param.key.form_name’: ‘widget’,
‘ohos.extra.param.key.module_name’: ‘entry’
},

  },
    <span class="hljs-keyword">this</span>.compId,
    {
      callback: (error, formId) =&gt; {
        hilog.info(<span class="hljs-number">0x3900</span>, <span class="hljs-string">'AAAAAA222'</span>, `callback info:error = ${<span class="hljs-built_in">JSON</span>.stringify(error)}, formId = ${formId}`);
        <span class="hljs-keyword">if</span> (error?.code === <span class="hljs-number">0</span>) {
          AppStorage.setOrCreate(<span class="hljs-string">'card123'</span>, formId);
          hilog.info(<span class="hljs-number">0x3900</span>, <span class="hljs-string">'AAAAAA333'</span>, <span class="hljs-string">"添加至桌面成功"</span>)
        } <span class="hljs-keyword">else</span> {
          hilog.info(<span class="hljs-number">0x3900</span>, <span class="hljs-string">'AAAAAA444'</span>, <span class="hljs-string">"添加至桌面失败,请尝试其它添加方式"</span>)
        }
      }
    }
  )
}

}<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

代码讲解:

由Menu组件作为Builder根部局,本质上是弹出个菜单。AddFormMenuItem顾名思义即增加一个菜单选项;bundleName即应用包名,使用applicationInfo属性获取;abilityName即待启动Ability名称;

parameters这个属性需要特别注意,里面包含的参数值容易弄错:

ohos.extra.param.key.form_dimension 代表的是卡片尺寸类型值,如:12值为1  22值为2  24值为3 44值为4 6*4值为5 
ohos.extra.param.key.form_name  代表的是卡片name值
ohos.extra.param.key.module_name 代表的是卡片所在的模块名成

componentId(this.compId)代表的是卡片界面UI 与当前应用内界面UI相似的组件,除了在当前参数传入还需要在相似组件添加属性.id(this.compId),这样添加卡片就会形成衔接效果。

关于卡片是否添加成功的结果、卡片的数据传递、菜单Item的自定义样式都在AddFormOptions属性里,可以参考文档来使用。

最后菜单长按右键弹出需要绑定在组件上:

     .bindContextMenu(this.AddCardMenu, ResponseType.LongPress, {
placement: Placement.TopLeft
})<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

bindContextMenu用来创建支持右键或长按的菜单,具体详细的使用细节参考文档即可。

总而言之实现上述添加卡片过程一定要注意parameters各个属性值,这里是最容易出错的。


更多关于HarmonyOS 鸿蒙Next 一键添加桌面卡片流程—FormMenu的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于HarmonyOS 鸿蒙Next 一键添加桌面卡片流程—FormMenu的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next系统中,一键添加桌面卡片的流程通过FormMenu实现,具体步骤如下:

  1. 启动FormMenu:首先,用户需要在桌面长按空白处或指定应用图标,触发桌面编辑模式,进而显示FormMenu界面。此界面展示了所有可用的桌面卡片选项。

  2. 选择卡片:在FormMenu中,用户浏览并选择想要添加的桌面卡片。卡片以图标或预览形式展示,便于用户直观了解卡片内容和样式。

  3. 配置卡片:选定卡片后,系统会进入卡片配置界面。在此,用户可以自定义卡片的内容、尺寸、位置等参数,以满足个性化需求。

  4. 确认添加:完成配置后,用户点击确认或保存按钮,卡片即被添加到桌面指定位置。此时,卡片开始展示实时数据或内容。

  5. 使用与交互:卡片添加成功后,用户可直接在桌面上与卡片进行交互,如查看信息、点击按钮触发操作等。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。此流程基于HarmonyOS的系统特性设计,确保用户能够便捷地添加和管理桌面卡片。

回到顶部