应用内拉起卡片管理加桌

从API version 18开始,Form Kit提供在应用内将ArkTS卡片添加到桌面的能力,以方便用户后续便捷查看信息或快速进入应用。

开发步骤

下面给出示例,实现如下功能:在应用内点击“添加卡片到桌面”按钮,拉起卡片管理页面。用户可在卡片管理页面,点击“添加至桌面”按钮,此时在桌面即可看到新添加的卡片。

  1. 创建卡片
  2. 通过openFormManager方法在应用内添加拉起卡片管理页面入口。
// entry/src/main/ets/pages/Index.ets
import { formProvider } from '@kit.FormKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { Want } from '@kit.AbilityKit';
import { promptAction } from '@kit.ArkUI';

@Entry
@Component
struct Index {

  build() {
    Row() {
      Column() {
        // 添加拉起卡片管理页面按钮
        Button($r('app.string.open_form_manager_button'))
          .onClick(() => {
            const want: Want = {
              bundleName: "com.example.openmanager",
              abilityName: 'EntryFormAbility',
              parameters: {
                'ohos.extra.param.key.form_dimension': 2,
                'ohos.extra.param.key.form_name': 'widget',
                'ohos.extra.param.key.module_name': 'entry'
              },
            };
            try {
              // 点击按钮后调用openFormManager方法,拉起卡片管理页面
              formProvider.openFormManager(want);
            } catch (error) {
              promptAction.openToast({message: (error as BusinessError).message});
              console.error(`catch error, code: ${(error as BusinessError).code}, message: ${(error as BusinessError).message})`);
            }
          })
          .margin({ top: 10, bottom: 10 })
      }
      .width('100%')
    }
    .height('100%')
  }
}

资源文件如下:

// entry/src/main/resources/base/element/string.json
{
  "string": [
    {
      "name": "open_form_manager_button",
      "value": "添加应用卡片到桌面"
    }
  ]
}
  1. 用户可在卡片管理页面,点击“添加至桌面”,此时在桌面即可看到新添加的卡片。结果示例如下。
    WidgetPrinciple