可以通过以下四种方式将卡片添加至桌面。
示例代码如下:
import { formProvider } from '@kit.FormKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { Want } from '@kit.AbilityKit';
import { promptAction } from '@kit.ArkUI';
import { hilog } from '@kit.PerformanceAnalysisKit';
const DOMAIN = 0x0000;
@Entry
@Component
struct Index {
build() {
Row() {
Column() {
// 添加拉起卡片管理页面按钮
Button('添加卡片')
.onClick(() => {
const want: Want = {
bundleName: 'com.example.myapplication', // 包名
abilityName: 'EntryFormAbility', // 模块ability名称
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 });
hilog.info(DOMAIN, 'testTag', 'catch error ', 'code:', (error as BusinessError).code, 'message:',
(error as BusinessError).message);
}
})
.margin({ top: 10, bottom: 10 });
}
.width('100%');
}
.height('100%');
}
} 实现效果图:

示例代码如下:
import { AddFormMenuItem } from '@kit.ArkUI';
import { formBindingData } from '@kit.FormKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
const tag = 'AddFormMenuItem';
@Entry
@Component
struct FormMenuDemo {
private compId: string = 'addforms@d46313145';
@Builder
MyMenu() {
Menu() {
AddFormMenuItem(
{
bundleName: 'com.example.myapplication', // 包名
abilityName: 'EntryFormAbility', // 模块ability名称
parameters: {
'ohos.extra.param.key.form_dimension': 2, // 卡片尺寸
'ohos.extra.param.key.form_name': 'widgetImage', // 卡片名称
'ohos.extra.param.key.module_name': 'entry' // 卡片所属的模块名称
},
},
this.compId,
{
formBindingData: formBindingData.createFormBindingData({}),
callback: (error, formId) => {
hilog.info(0x3900, tag, `callback info:error = ${JSON.stringify(error)}, formId = ${formId}`);
if (error?.code === 0) {
hilog.info(0x3900, tag, '添加至桌面成功');
} else {
hilog.info(0x3900, tag, '添加至桌面失败,请尝试其它添加方式');
}
}
}
);
};
}
build() {
Row() {
Column({ space: 36 }) {
Text('长按图片添加卡片到桌面')
.fontSize('18fp');
Image($r('app.media.startIcon')) // 自定义图片
.id(this.compId)
.width(150)
.height(150)
// 绑定菜单
.bindContextMenu(this.MyMenu, ResponseType.LongPress, {
placement: Placement.TopLeft
});
}
.width('100%');
}
.height('100%');
}
} 实现效果图:
