跳到主要内容

共享联系人信息到分享推荐区

通过意图框架服务,目标应用可以将联系人信息共享到分享推荐区。参考:习惯推荐-接入方案

该示例代码无法直接运行,需要申请意图框架白名单。参见:Intents Kit接入流程

开发步骤

  1. 导入相关模块。

    import BuildProfile from 'BuildProfile';
    import { util } from '@kit.ArkTS';
    import { BusinessError } from '@kit.BasicServicesKit';
    import { insightIntent } from '@kit.IntentsKit';
  2. 目标应用构造联系人数据。

    const intent: insightIntent.InsightIntent = {
    intentName: 'SendMessage', // 意图名
    intentVersion: '1.0', // 意图版本
    identifier: util.generateRandomUUID(), // 意图标识符
    intentActionInfo: { // 意图执行信息
    actionMode: 'EXECUTED', // 动作模式
    executedTimeSlots: { // 实际发生时间段
    executedStartTime: new Date().getTime(),
    executedEndTime: new Date().getTime(),
    }
    },
    intentEntityInfo: { // 意图实体信息
    entityId: 'this-is-id', // 实体Id
    entityName: 'Contact', // 实体名称
    name: 'Nickname', // 联系人昵称
    icon: 'data:image/png;base64,...', // 联系人头像
    phoneNumbers: [], // 联系人电话号码
    extras: {
    shareParams: {
    bundleName: BuildProfile.BUNDLE_NAME, // 应用包名
    moduleName: 'entry', // 应用模块名 根据实际填写
    abilityName: 'SampleContactAbility', // 应用ability名 根据实际填写
    action: 'ohos.want.action.sendData', // 标识分享 不可修改
    }
    }
    }
    };
  3. 目标应用共享联系人数据。

    let uiContext: UIContext = this.getUIContext();
    let context: Context = uiContext.getHostContext() as Context;
    insightIntent.shareIntent(context, [intent]).then(() => {
    console.info('shareIntent ok');
    }).catch((err: BusinessError) => {
    console.error(`shareIntent failed. Code: ${err.code}. message: ${err.message}`);
    });