1# 记忆链接开发指导 2<!--Kit: Multimodal Awareness Kit--> 3<!--Subsystem: MultimodalAwareness--> 4<!--Owner: @dilligencer--> 5<!--Designer: @zou_ye--> 6<!--Tester: @judan--> 7<!--Adviser: @hu-zhiqiong--> 8 9## 概述 10 11MetadataBinding(记忆链接)指由第三方应用提供[鸿蒙App Linking链接](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/applinking-introduction),系统将当前用户浏览的内容与鸿蒙App Linking链接进行关联并保存的功能。 12 13详细的接口介绍请参考[MetadataBinding接口](../../reference/apis-multimodalawareness-kit/js-apis-awareness-metadataBinding.md)。 14 15## 场景介绍 16 17第三方应用可使用记忆链接功能,将鸿蒙App Linking链接映射到调用接口的系统应用或服务。例如,用户在【电商应用】中浏览某个商品时,截图保存了该商品的图片,系统将记录图片与【电商应用】提供的鸿蒙App Linking链接的映射关系。当用户再次浏览该图片时,系统会提醒用户是否需要返回【电商应用】查看商品详情。 18 19## 接口说明 20 21| 接口名 | 描述 | 22| ------------------------------------------------------------ | -------------------------------------- | 23| [submitMetadata](../../reference/apis-multimodalawareness-kit/js-apis-awareness-metadataBinding.md#metadatabindingsubmitmetadata)(metadata: string): void; | 第三方应用将待编码的鸿蒙App Linking链接传递给多模态融合感知服务,该服务决定适当时机将内容传递给调用编码接口的系统应用。 | 24| [on](../../reference/apis-multimodalawareness-kit/js-apis-awareness-metadataBinding.md#metadatabindingonoperationsubmitmetadata)(type: 'operationSubmitMetadata', bundleName: string, callback: Callback<number>): void; | 订阅系统事件以获取编码内容,应用注册回调,事件发生时回传编码内容。| 25| [off](../../reference/apis-multimodalawareness-kit/js-apis-awareness-metadataBinding.md#metadatabindingoffoperationsubmitmetadata)(type: 'operationSubmitMetadata', bundleName: string, callback?: Callback<number>): void; | 取消订阅系统获取编码内容的事件。取消注册回调接口。| 26 27## 约束与限制 28 29 - 鸿蒙App Linking链接的最大字节数为99。 30 31## 开发步骤 32 331. 导入模块。 34 35 ```ts 36 import { metadataBinding } from '@kit.MultimodalAwarenessKit'; 37 import { BusinessError } from '@kit.BasicServicesKit'; 38 import { Callback } from '@ohos.base'; 39 ``` 40 412. 定义记忆服务回调,函数接收回传编码的内容。 42 43 ``` 44 let callback : Callback<number> = (event: number) => {}; 45 ``` 46 473. 订阅记忆服务。 48 49 ``` 50 let bundleName: string = ''; 51 try { 52 metadataBinding.on('operationSubmitMetadata', bundleName, this.callback); 53 console.info("on succeeded"); 54 } catch (err) { 55 let error = err as BusinessError; 56 console.error("Register event error and err code is " + error.code); 57 } 58 ``` 59 604. 提供鸿蒙App Linking链接。 61 62 ``` 63 let metadata: string = ""; 64 try { 65 metadataBinding.submitMetadata(metadata); 66 } catch (err) { 67 let error = err as BusinessError; 68 console.error("Submit metadata error and err code is " + error.code); 69 } 70 ``` 71 725. 取消订阅记忆服务。 73 74 ``` 75 try { 76 metadataBinding.off('operationSubmitMetadata', bundleName, this.callback); 77 console.info("off succeeded"); 78 } catch (err) { 79 let error = err as BusinessError; 80 console.error("Unregister event error and err code is " + error.code); 81 } 82 ```