方案概述
当用户在应用/元服务内使用功能时,开发者需要按照标准意图Schema向系统共享行为数据,并支持意图调用(空调用与传参调用),以实现用户点击模板卡后跳转回对应页面。
意图注册
以歌曲续听推荐特性为例,首先要注册播放歌曲意图(PlayMusic),其他意图见各垂域意图Schema。开发者需要编辑对应的意图配置 PROJECT_HOME/entry/src/main/resources/base/profile/insight_intent.json文件,实现意图注册。
- {
- // 应用支持的意图列表
- // 必须声明应用支持插件包含的必选意图,应用上架时会进行校验
- "insightIntents": [
- {
- // 意图名称
- // 名称应当遵循意图框架规范,当前仅支持预置垂域意图,不允许自定义
- // 应用内意图名称唯一,不允许出现相同的名称定义
- "intentName": "PlayMusic",
- // 意图所属的垂域
- "domain": "MusicDomain",
- // 意图版本号
- // 插件引用意图时会校验该版本号,只有和插件定义的版本号一致才能正常调用
- "intentVersion": "1.0.1",
- // 意图调用逻辑入口
- "srcEntry": "./ets/entryability/InsightIntentExecutorImpl.ets",
- "uiAbility": {
- // 意图所在module、ability,以及代码相对路径入口
- "ability": "EntryAbility",
- // UIAbility支持前后台两种执行模式
- "executeMode": [
- "background",
- "foreground"
- ]
- }
- }
- ]
- }
端侧意图共享
构建意图对象,并且调用shareIntent(),实现意图共享。可同时构建多个PlayMusic或PlayMusicList的意图对象。
- import { insightIntent } from '@kit.IntentsKit';
- import { BusinessError } from '@kit.BasicServicesKit';
- let playMusicIntent1: insightIntent.InsightIntent;
- let playMusicIntent2: insightIntent.InsightIntent;
- // 共享数据接口 意图数组可以是更多的实体
- // 根据实际代码上下文自行传入合适的context
- insightIntent.shar