
回复
一、方案概述
当用户使用应用/元服务时,开发者可以按照标准意图Schema向系统共享数据,并支持意图调用(空调用与传参调用),以实现用户点击卡片后,可后台执行功能(例如播放指定歌曲)或跳转至指定内容页面(例如指定的歌曲播放页面)。
二、意图注册
以歌曲本地搜索特性为例,首先要注册播放歌曲意图(PlayMusic)。开发者需要编辑对应的意图配置PROJECT_HOME/entry/src/main/resources/base/profile/insight_intent.json文件,实现意图注册。
三、端侧意图共享
构建意图对象,并且调用shareIntent(),实现意图共享。可同时构建多个PlayMusic或PlayMusicList的意图对象。
PlayMusic的意图共享字段定义见各垂域意图Schema定义,代码示例如下:
完整的意图共享示例如下所示,该示例构建了一个PlayMusic意图,并进行了shareIntent调用。
四、端侧意图调用
开发者需要自己实现InsightIntentExecutor,并在对应回调实现打开落地页(点击推荐卡片跳转的界面)或后台执行的能力,PlayMusic的意图调用字段定义见各垂域意图Schema。
步骤如下:
继承InsightIntentExecutor。
重写对应方法,例如目标拉起前台页面,则可重写onExecuteInUIAbilityForegroundMode方法。
通过意图名称,识别播放歌曲意图(PlayMusic),在对应的方法中传递意图参数(param),并拉起对应落地页(如播放歌曲落地页)或后台执行(播放歌曲)。
本文主要参考鸿蒙官方网站材料