# Class: ShareSystem

分享系统，负责分享相关功能。

## Hierarchy

- [`Component`](Component)

  ↳ **`ShareSystem`**

## Table of contents

### Constructors

- constructor

### Events

- onAdd
- onRelease
- onRemove
- onTick
- onUpdate

### Properties

- priority
- schema
- EVENTS

### Accessors

- el
- recordState
- scene
- supported
- version

### Methods

- captureToArrayBuffer
- captureToArrayBufferAsync
- captureToDataURL
- captureToDataURLAsync
- captureToFriends
- captureToLocalPath
- getData
- recordFinishToAlbum
- recordFinishToTempFile
- recordPause
- recordResume
- recordStart
- setData
- setDataOne

## Constructors

### constructor

• **new ShareSystem**()

#### Inherited from

[Component](Component).[constructor](Component#constructor)

## Events

### onAdd

▸ **onAdd**(`parent`, `data`): `void`

所挂载的`element`被挂载到场景时触发的回调。

#### Parameters

| Name | Type |
| :------ | :------ |
| `parent` | [`Element`](Element) |
| `data` | [`IShareSystemData`](/miniprogram/dev/reference/xr-frame/api/interfaces/IShareSystemData) |

#### Returns

`void`

#### Inherited from

[Component](Component).[onAdd](Component#onAdd)

___

### onRelease

▸ **onRelease**(`data`): `void`

从被挂载的`element`上被移除，或是`element`被销毁时，触发的回调。
一般用于释放持有的资源。

#### Parameters

| Name | Type |
| :------ | :------ |
| `data` | [`IShareSystemData`](/miniprogram/dev/reference/xr-frame/api/interfaces/IShareSystemData) |

#### Returns

`void`

#### Inherited from

[Component](Component).[onRelease](Component#onRelease)

___

### onRemove

▸ **onRemove**(`parent`, `data`): `void`

所挂载的`element`从父节点`parent`被移除时，或者自己从`element`上被移除时，触发的回调。
一般用于消除功能的运作。
**如果一个组件的元素直接被销毁了，那这个组件就不会经历onRemove而是直接进入onRelease。**

#### Parameters

| Name | Type |
| :------ | :------ |
| `parent` | [`Element`](Element) |
| `data` | [`IShareSystemData`](/miniprogram/dev/reference/xr-frame/api/interfaces/IShareSystemData) |

#### Returns

`void`

#### Inherited from

[Component](Component).[onRemove](Component#onRemove)

___

### onTick

▸ **onTick**(`deltaTime`, `data`): `void`

渲染每帧触发的回调。

#### Parameters

| Name | Type |
| :------ | :------ |
| `deltaTime` | `number` |
| `data` | [`IShareSystemData`](/miniprogram/dev/reference/xr-frame/api/interfaces/IShareSystemData) |

#### Returns

`void`

#### Inherited from

[Component](Component).[onTick](Component#onTick)

___

### onUpdate

▸ **onUpdate**(`data`, `preData`): `void`

数据更新时触发的回调。

#### Parameters

| Name | Type |
| :------ | :------ |
| `data` | [`IShareSystemData`](/miniprogram/dev/reference/xr-frame/api/interfaces/IShareSystemData) |
| `preData` | [`IShareSystemData`](/miniprogram/dev/reference/xr-frame/api/interfaces/IShareSystemData) |

#### Returns

`void`

#### Inherited from

[Component](Component).[onUpdate](Component#onUpdate)

## Properties

### priority

• `Readonly` **priority**: `number`

自定义组件的更新优先级。

#### Overrides

[Component](Component).[priority](Component#priority)

___

### schema

• `Readonly` **schema**: [`IComponentSchema`](/miniprogram/dev/reference/xr-frame/api/interfaces/IComponentSchema) = `{}`

自定义组件的`schema`。

#### Inherited from

[Component](Component).[schema](Component#schema)

___

### EVENTS

▪ `Static` **EVENTS**: `string`[] = `[]`

#### Inherited from

[Component](Component).[EVENTS](Component#EVENTS)

## Accessors

### el

• `get` **el**(): [`Element`](Element)

挂载的元素。

#### Returns

[`Element`](Element)

___

### recordState

• `get` **recordState**(): [`EShareRecordState`](/miniprogram/dev/reference/xr-frame/api/enums/EShareRecordState)

当前录屏状态。

#### Returns

[`EShareRecordState`](/miniprogram/dev/reference/xr-frame/api/enums/EShareRecordState)

___

### scene

• `get` **scene**(): [`Scene`](Scene)

当前场景。

#### Returns

[`Scene`](Scene)

___

### supported

• `get` **supported**(): `boolean`

当前是否支持分享系统。

#### Returns

`boolean`

___

### version

• `get` **version**(): `number`

当前版本，每次有数据更新都会增加，可以用作和其他组件合作的依据。

#### Returns

`number`

## Methods

### captureToArrayBuffer

▸ **captureToArrayBuffer**(`options?`): `ArrayBuffer`

**`deprecated`** 请在`v3.0.2`后使用异步版本，同步版本不再维护，请使用`captureToArrayBufferAsync`。
截屏输出为`ArrayBuffer`。

#### Parameters

| Name | Type |
| :------ | :------ |
| `options` | [`IShareCaptureOptions`](/miniprogram/dev/reference/xr-frame/api/interfaces/IShareCaptureOptions) |

#### Returns

`ArrayBuffer`

___

### captureToArrayBufferAsync

▸ **captureToArrayBufferAsync**(`options?`): `Promise`

截屏输出为`ArrayBuffer`。

#### Parameters

| Name | Type |
| :------ | :------ |
| `options` | [`IShareCaptureOptions`](/miniprogram/dev/reference/xr-frame/api/interfaces/IShareCaptureOptions) |

#### Returns

`Promise`

___

### captureToDataURL

▸ **captureToDataURL**(`options?`): `string`

**`deprecated`** 请在`v3.0.2`后使用异步版本，同步版本不再维护，请使用`captureToDataURLAsync`。
截屏输出为`base64`。

#### Parameters

| Name | Type |
| :------ | :------ |
| `options` | [`IShareCaptureOptions`](/miniprogram/dev/reference/xr-frame/api/interfaces/IShareCaptureOptions) |

#### Returns

`string`

___

### captureToDataURLAsync

▸ **captureToDataURLAsync**(`options?`): `Promise`

截屏输出为`base64`。

#### Parameters

| Name | Type |
| :------ | :------ |
| `options` | [`IShareCaptureOptions`](/miniprogram/dev/reference/xr-frame/api/interfaces/IShareCaptureOptions) |

#### Returns

`Promise`

___

### captureToFriends

▸ **captureToFriends**(`options?`): `Promise`

直接截屏分享给好友。

#### Parameters

| Name | Type |
| :------ | :------ |
| `options` | [`IShareCaptureOptions`](/miniprogram/dev/reference/xr-frame/api/interfaces/IShareCaptureOptions) |

#### Returns

`Promise`

___

### captureToLocalPath

▸ **captureToLocalPath**(`options?`, `callback`): `Promise`

截屏输出为本地路径，回调完成后会自动释放。

**`params`** callback 接受结果的回调，处理完后会释放文件。在v2.27.1前是异步，之后兼容同步和异步。

#### Parameters

| Name | Type |
| :------ | :------ |
| `options` | [`IShareCaptureOptions`](/miniprogram/dev/reference/xr-frame/api/interfaces/IShareCaptureOptions) |
| `callback` | (`fp`: `string`) => `void` \| `Promise` |

#### Returns

`Promise`

___

### getData

▸ **getData**(`key`): [`IShareSystemData`](/miniprogram/dev/reference/xr-frame/api/interfaces/IShareSystemData)[`T`]

获取一个当前值。

#### Type parameters

| Name | Type |
| :------ | :------ |
| `T` | extends `never` |

#### Parameters

| Name | Type |
| :------ | :------ |
| `key` | `T` |

#### Returns

[`IShareSystemData`](/miniprogram/dev/reference/xr-frame/api/interfaces/IShareSystemData)[`T`]

#### Inherited from

[Component](Component).[getData](Component#getData)

___

### recordFinishToAlbum

▸ **recordFinishToAlbum**(): `Promise`

录屏完成，直接保存到用户相册。

#### Returns

`Promise`

___

### recordFinishToTempFile

▸ **recordFinishToTempFile**(): `Promise`

录屏完成，输出到临时文件。

#### Returns

`Promise`

临时文件地址

___

### recordPause

▸ **recordPause**(): `Promise`

暂停本次录屏。

#### Returns

`Promise`

___

### recordResume

▸ **recordResume**(): `Promise`

唤醒本次录屏。

#### Returns

`Promise`

___

### recordStart

▸ **recordStart**(`options?`): `Promise`

启动录屏。

#### Parameters

| Name | Type |
| :------ | :------ |
| `options?` | [`IShareRecordOptions`](/miniprogram/dev/reference/xr-frame/api/interfaces/IShareRecordOptions) |

#### Returns

`Promise`

___

### setData

▸ **setData**(`data`): `void`

不通过`xml`而是直接设置`data`，注意值的类型需要和`schema`中一致。

#### Parameters

| Name | Type |
| :------ | :------ |
| `data` | `Partial` |

#### Returns

`void`

#### Inherited from

[Component](Component).[setData](Component#setData)

___

### setDataOne

▸ **setDataOne**(`key`, `value`): `void`

设置一个数据。

#### Type parameters

| Name | Type |
| :------ | :------ |
| `T` | extends `never` |

#### Parameters

| Name | Type |
| :------ | :------ |
| `key` | `T` |
| `value` | [`IShareSystemData`](/miniprogram/dev/reference/xr-frame/api/interfaces/IShareSystemData)[`T`] |

#### Returns

`void`

#### Inherited from

[Component](Component).[setDataOne](Component#setDataOne)
