1# @ohos.sendableResourceManager (Resource Manager) 2 3The **sendableResourceManager** module provides the [resourceToSendableResource](#sendableresourcemanagerresourcetosendableresource) and [sendableResourceToResource](#sendableresourcemanagersendableresourcetoresource) APIs to implement conversion between [Resource](#resource) and [SendableResource](#sendableresource) objects. 4 5A **Resource** object can be held by the [Sendable](../../arkts-utils/arkts-sendable.md) class after being converted into a **SendableResource** object. After cross-thread transmission, the **Sendable** class converts the **SendableResource** object into a **Resource** object and uses it as an input parameter for the API used to obtain resources. 6 7> **NOTE** 8> 9> The initial APIs of this module are supported since API version 12. Newly added APIs will be marked with a superscript to indicate their earliest API version. 10 11## Modules to Import 12 13```js 14import sendableResourceManager from '@ohos.sendableResourceManager'; 15``` 16 17## sendableResourceManager.resourceToSendableResource 18 19resourceToSendableResource(resource: Resource): SendableResource 20 21Converts a **Resource** object to a **SendableResource** object. 22 23**System capability**: SystemCapability.Global.ResourceManager 24 25**Parameters** 26 27| Name | Type | Mandatory | Description | 28| -------- | ---------------------------------------- | ---- | ----------------------------- | 29| resource | [Resource](#resource) | Yes | **Resource** object.| 30 31**Return value** 32 33| Type | Description | 34| ------ | ---------------------------- | 35| [SendableResource](#sendableresource) | **SendableResource** object after conversion.| 36 37**Error codes** 38 39For details about the error codes, see [Universal Error Codes](../errorcode-universal.md). 40 41| ID| Error Message| 42| -------- | ---------------------------------------- | 43| 401 | If the input parameter invalid. Possible causes: 1.Incorrect parameter types; 2.Parameter verification failed. | 44 45**Example** 46 ```json 47 // Resource file path: src/main/resources/base/element/string.json 48 { 49 "string": [ 50 { 51 "name": "test", 52 "value": "I'm a test string resource." 53 } 54 ] 55 } 56 ``` 57 ```js 58import sendableResourceManager from '@ohos.sendableResourceManager'; 59import { BusinessError } from '@ohos.base'; 60 61try { 62 let sendableResource: sendableResourceManager.SendableResource = sendableResourceManager.resourceToSendableResource($r('app.string.test')); 63} catch (error) { 64 let code = (error as BusinessError).code; 65 let message = (error as BusinessError).message; 66 console.error(`resourceToSendableResource failed, error code: ${code}, message: ${message}.`); 67} 68 ``` 69 70## sendableResourceManager.sendableResourceToResource 71 72sendableResourceToResource(resource: SendableResource): Resource 73 74Converts a **SendableResource** object to a **Resource** object. 75 76**System capability**: SystemCapability.Global.ResourceManager 77 78**Parameters** 79 80| Name | Type | Mandatory | Description | 81| -------- | ---------------------------------------- | ---- | ----------------------------- | 82| resource | [SendableResource](#sendableresource) | Yes | **SendableResource** object.| 83 84**Return value** 85 86| Type | Description | 87| ------ | ---------------------------- | 88| [Resource](#resource) | **Resource** object after conversion.| 89 90**Error codes** 91 92For details about the error codes, see [Universal Error Codes](../errorcode-universal.md). 93 94| ID| Error Message| 95| -------- | ---------------------------------------- | 96| 401 | If the input parameter invalid. Possible causes: 1.Incorrect parameter types; 2.Parameter verification failed. | 97 98**Example** 99 ```json 100 // Resource file path: src/main/resources/base/element/string.json 101 { 102 "string": [ 103 { 104 "name": "test", 105 "value": "I'm a test string resource." 106 } 107 ] 108 } 109 ``` 110 ```js 111import sendableResourceManager from '@ohos.sendableResourceManager'; 112import { BusinessError } from '@ohos.base'; 113 114try { 115 let resource: sendableResourceManager.Resource = sendableResourceManager.sendableResourceToResource(sendableResourceManager.resourceToSendableResource($r('app.string.test'))); 116} catch (error) { 117 let code = (error as BusinessError).code; 118 let message = (error as BusinessError).message; 119 console.error(`resourceToSendableResource failed, error code: ${code}, message: ${message}.`); 120} 121 ``` 122 123## Resource 124 125Defines a **Resource** object. 126 127**System capability**: SystemCapability.Global.ResourceManager 128 129**Parameters** 130 131| Name | Type | Read-Only | Optional |Description | 132| ---------- | ------ | ----- | ---- | ---------------| 133| bundleName | string | No | No| Bundle name of the application.| 134| moduleName | string | No | No| Module name of the application.| 135| id | number | No | No| Resource ID. | 136| params | any[] | No | Yes| Other resource parameters, including the resource name, substitution value for the formatting API, and quantifier for the singular-plural formatting API. | 137| type | number | No | Yes| Resource type. | 138 139## SendableResource 140 141type SendableResource = _SendableResource 142 143**System capability**: SystemCapability.Global.ResourceManager 144 145| Type | Description | 146| ---------- | ------ | 147| [_SendableResource](js-apis-sendableResource.md#sendableresource-1)|**SendableResource** object.| 148