HarmonyOS鸿蒙Next中如何添加某页面的桌面快捷方式?

HarmonyOS鸿蒙Next中如何添加某页面的桌面快捷方式? 如何添加某页面的桌面快捷方式?

2 回复

在HarmonyOS Next中,通过UIAbility的WantAgent机制可添加桌面快捷方式。首先在module.json5中配置快捷方式入口,声明所需权限。然后使用WantAgenttrigger方法触发创建,系统将自动在桌面生成图标。具体实现需调用鸿蒙API接口,如wantAgent模块的相关方法,并传递目标页面的Want参数。

更多关于HarmonyOS鸿蒙Next中如何添加某页面的桌面快捷方式?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS Next中,可以通过以下步骤为应用内特定页面创建桌面快捷方式:

  1. 配置Ability信息
    module.json5中为目标Ability添加formsEnabled: true,并配置forms属性定义卡片信息:

    "abilities": [{
      "name": "MainAbility",
      "formsEnabled": true,
      "forms": [{
        "name": "widget",
        "description": "快捷方式卡片",
        "src": "./widget/pages/index/index",
        "window": { "designWidth": 720 },
        "colorMode": "auto",
        "isDefault": true
      }]
    }]
    
  2. 实现动态卡片更新
    使用formProvider.setFormNextRefreshTime()控制卡片定时更新,并通过formBindingData更新数据:

    import formProvider from '[@ohos](/user/ohos).app.form.formProvider';
    
    // 设置30秒后自动刷新
    formProvider.setFormNextRefreshTime(formId, 30, (err) => {
      if (err) return;
      // 刷新时更新卡片数据
      let formData = {
        'title': '页面快捷方式',
        'detail': '点击直达目标页'
      };
      formProvider.updateForm(formId, formBindingData.createFormBindingData(formData));
    });
    
  3. 添加快捷方式到桌面
    用户长按应用图标,在弹出菜单中选择「服务卡片」,拖动需要的卡片样式到桌面即可。开发者可通过formHost接口判断卡片是否已添加:

    import formHost from '[@ohos](/user/ohos).app.form.formHost';
    
    // 检查卡片是否添加到桌面
    formHost.isFormAdded(formId, (err, res) => {
      if (!err && res) {
        console.log('卡片已添加到桌面');
      }
    });
    

注意:

  • 需在AppScope/app.json5中申请ohos.permission.REQUIRE_FORM权限
  • 卡片布局通过hml/css/js文件定义,支持点击事件跳转至目标Ability
  • 系统会根据卡片名称和配置自动生成快捷方式入口
回到顶部