共享联系人信息到分享推荐区
通过意图框架服务,目标应用可以将联系人信息共享到分享推荐区。参考:习惯推荐-接入方案。
该示例代码无法直接运行,需要申请意图框架白名单。参见:Intents Kit接入流程。
开发步骤
-
导入相关模块。
import BuildProfile from 'BuildProfile';import { util } from '@kit.ArkTS';import { BusinessError } from '@kit.BasicServicesKit';import { insightIntent } from '@kit.IntentsKit'; -
目标应用构造联系人数据。
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', // 实体IdentityName: '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', // 标识分享 不可修改}}}}; -
目标应用共享联系人数据。
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}`);});