共享数据模块 #
此模块用于多个快应用之间的数据共享(内存共享)。
基础用法
<template>
<div class="es-sdk-root-css">
<s-title-view class="es-sdk-content-title-css" :text="$options.name" />
<div class="es-sdk-content-divider-css" />
<div class="es-sdk-content-column-css">
<div class="es-sdk-content-row-css">
<s-text-view text="Boolean:" />
<s-text-view :text="booleanValue" />
<s-text-view text="Int:" />
<s-text-view :text="intValue" />
<s-text-view text="Long:" />
<s-text-view :text="longValue" />
<s-text-view text="String:" />
<s-text-view :text="stringValue" />
<s-text-view text="Array:" />
<s-text-view :text="arrayValue" />
<s-text-view text="Map:" />
<s-text-view :text="mapValue" />
</div>
<div class="es-sdk-content-divider-css" />
<div class="es-sdk-content-row-css">
<s-text-button
text="getBoolean"
@onButtonClicked="onGetBooleanButtonClicked"
/>
<s-text-button text="getInt" @onButtonClicked="onGetIntButtonClicked" />
<s-text-button
text="getLong"
@onButtonClicked="onGetLongButtonClicked"
/>
<s-text-button
text="getString"
@onButtonClicked="onGetStringButtonClicked"
/>
<s-text-button
text="getArray"
@onButtonClicked="onGetArrayButtonClicked"
/>
<s-text-button text="getMap" @onButtonClicked="onGetMapButtonClicked" />
</div>
<div class="es-sdk-content-row-css">
<s-text-button
text="putBoolean"
@onButtonClicked="onPutBooleanButtonClicked"
/>
<s-text-button text="putInt" @onButtonClicked="onPutIntButtonClicked" />
<s-text-button
text="putLong"
@onButtonClicked="onPutLongButtonClicked"
/>
<s-text-button
text="putString"
@onButtonClicked="onPutStringButtonClicked"
/>
<s-text-button
text="putArray"
@onButtonClicked="onPutArrayButtonClicked"
/>
<s-text-button text="putMap" @onButtonClicked="onPutMapButtonClicked" />
</div>
</div>
</div>
</template>
<script lang="ts">
import { ref } from 'vue'
import { defineComponent } from '@vue/runtime-core'
import {
ESSharedDataMode,
useESShareData,
useESToast,
} from '@extscreen/es3-core'
export default defineComponent({
name: '共享数据',
setup() {
const booleanValue = ref(false)
const intValue = ref(0)
const longValue = ref(0)
const stringValue = ref('')
const arrayValue = ref([])
const mapValue = ref({})
const shareData = useESShareData()
const toast = useESToast()
const shareDataParams = {
packageName: 'debug',
secretKey: '111111111',
}
function onGetBooleanButtonClicked() {
shareData
.getBoolean(shareDataParams, 'booleanKey', false)
.then((value) => {
booleanValue.value = value
})
}
function onGetIntButtonClicked() {
shareData.getInt(shareDataParams, 'intKey', 0).then((value) => {
intValue.value = value
})
}
function onGetLongButtonClicked() {
shareData.getLong(shareDataParams, 'longKey', 0).then((value) => {
longValue.value = value
})
}
function onGetStringButtonClicked() {
shareData.getString(shareDataParams, 'stringKey', '').then((value) => {
stringValue.value = value
})
}
function onGetArrayButtonClicked() {
shareData.getArray(shareDataParams, 'arrayKey', []).then((value) => {
arrayValue.value = value
})
}
function onGetMapButtonClicked() {
shareData.getMap(shareDataParams, 'mapKey', null).then((value) => {
mapValue.value = value
})
}
//--------------------------------------------------------------------------------------
function onPutBooleanButtonClicked() {
shareData
.putBoolean(
shareDataParams,
'booleanKey',
true,
ESSharedDataMode.ES_SHARED_DATA_MODE_PRIVATE
)
.then(
(value) => {
toast.showToast(`putSharedBoolean success${value}`)
},
(error) => {
toast.showToast(`putSharedBoolean error${error}`)
}
)
}
function onPutIntButtonClicked() {
shareData
.putInt(
shareDataParams,
'intKey',
22,
ESSharedDataMode.ES_SHARED_DATA_MODE_PRIVATE
)
.then(
(value) => {
toast.showToast(`putSharedInt success${value}`)
},
(error) => {
toast.showToast(`putSharedInt error${error}`)
}
)
}
function onPutLongButtonClicked() {
shareData
.putLong(
shareDataParams,
'longKey',
22,
ESSharedDataMode.ES_SHARED_DATA_MODE_PRIVATE
)
.then(
(value) => {
toast.showToast(`putSharedLong success${value}`)
},
(error) => {
toast.showToast(`putSharedLong error${error}`)
}
)
}
function onPutStringButtonClicked() {
shareData
.putString(
shareDataParams,
'stringKey',
'22',
ESSharedDataMode.ES_SHARED_DATA_MODE_PRIVATE
)
.then(
(value) => {
toast.showToast(`putSharedString success${value}`)
},
(error) => {
toast.showToast(`putSharedString error${error}`)
}
)
}
function onPutArrayButtonClicked() {
shareData
.putArray(
shareDataParams,
'arrayKey',
[22],
ESSharedDataMode.ES_SHARED_DATA_MODE_PRIVATE
)
.then(
(value) => {
toast.showToast(`putSharedArray success${value}`)
},
(error) => {
toast.showToast(`putSharedArray error${error}`)
}
)
}
function onPutMapButtonClicked() {
const map = new Map<string, string>()
map.set('mapKey', 'mapValue')
shareData
.putMap(
shareDataParams,
'mapKey',
map,
ESSharedDataMode.ES_SHARED_DATA_MODE_PRIVATE
)
.then(
(value) => {
toast.showToast(`putSharedMap success${value}`)
},
(error) => {
toast.showToast(`putSharedMap error${error}`)
}
)
}
return {
booleanValue,
intValue,
longValue,
stringValue,
arrayValue,
mapValue,
onGetBooleanButtonClicked,
onGetIntButtonClicked,
onGetLongButtonClicked,
onGetStringButtonClicked,
onGetArrayButtonClicked,
onGetMapButtonClicked,
onPutBooleanButtonClicked,
onPutIntButtonClicked,
onPutLongButtonClicked,
onPutStringButtonClicked,
onPutArrayButtonClicked,
onPutMapButtonClicked,
}
},
})
</script>
<style></style>
qt.shareData 用法 alpha
<template>
<div class="es-sdk-root-css">
<s-title-view class="es-sdk-content-title-css" :text="$options.name" />
<div class="es-sdk-content-divider-css" />
<div class="es-sdk-content-column-css">
<div class="es-sdk-content-row-css">
<s-text-view text="Boolean:" />
<s-text-view :text="booleanValue" />
<s-text-view text="Int:" />
<s-text-view :text="intValue" />
<s-text-view text="Long:" />
<s-text-view :text="longValue" />
<s-text-view text="String:" />
<s-text-view :text="stringValue" />
<s-text-view text="Array:" />
<s-text-view :text="arrayValue" />
<s-text-view text="Map:" />
<s-text-view :text="mapValue" />
</div>
<div class="es-sdk-content-divider-css" />
<div class="es-sdk-content-row-css">
<s-text-button
text="getBoolean"
@onButtonClicked="onGetBooleanButtonClicked"
/>
<s-text-button text="getInt" @onButtonClicked="onGetIntButtonClicked" />
<s-text-button
text="getLong"
@onButtonClicked="onGetLongButtonClicked"
/>
<s-text-button
text="getString"
@onButtonClicked="onGetStringButtonClicked"
/>
<s-text-button
text="getArray"
@onButtonClicked="onGetArrayButtonClicked"
/>
<s-text-button text="getMap" @onButtonClicked="onGetMapButtonClicked" />
</div>
<div class="es-sdk-content-row-css">
<s-text-button
text="putBoolean"
@onButtonClicked="onPutBooleanButtonClicked"
/>
<s-text-button text="putInt" @onButtonClicked="onPutIntButtonClicked" />
<s-text-button
text="putLong"
@onButtonClicked="onPutLongButtonClicked"
/>
<s-text-button
text="putString"
@onButtonClicked="onPutStringButtonClicked"
/>
<s-text-button
text="putArray"
@onButtonClicked="onPutArrayButtonClicked"
/>
<s-text-button text="putMap" @onButtonClicked="onPutMapButtonClicked" />
</div>
</div>
</div>
</template>
<script lang="ts">
import { ref } from 'vue'
import { defineComponent } from '@vue/runtime-core'
import { ESSharedDataMode } from '@extscreen/es3-core'
export default defineComponent({
name: '共享数据',
setup() {
const booleanValue = ref(false)
const intValue = ref(0)
const longValue = ref(0)
const stringValue = ref('')
const arrayValue = ref([])
const mapValue = ref({})
const shareDataParams = {
packageName: 'debug',
secretKey: '111111111',
}
function onGetBooleanButtonClicked() {
qt.shareData
.getBoolean(shareDataParams, 'booleanKey', false)
.then((value) => {
booleanValue.value = value
})
}
function onGetIntButtonClicked() {
qt.shareData.getInt(shareDataParams, 'intKey', 0).then((value) => {
intValue.value = value
})
}
function onGetLongButtonClicked() {
qt.shareData.getLong(shareDataParams, 'longKey', 0).then((value) => {
longValue.value = value
})
}
function onGetStringButtonClicked() {
qt.shareData.getString(shareDataParams, 'stringKey', '').then((value) => {
stringValue.value = value
})
}
function onGetArrayButtonClicked() {
qt.shareData.getArray(shareDataParams, 'arrayKey', []).then((value) => {
arrayValue.value = value
})
}
function onGetMapButtonClicked() {
qt.shareData.getMap(shareDataParams, 'mapKey', null).then((value) => {
mapValue.value = value
})
}
//--------------------------------------------------------------------------------------
function onPutBooleanButtonClicked() {
qt.shareData
.putBoolean(
shareDataParams,
'booleanKey',
true,
ESSharedDataMode.ES_SHARED_DATA_MODE_PRIVATE
)
.then(
(value) => {
qt.toast.showToast(`putSharedBoolean success${value}`)
},
(error) => {
qt.toast.showToast(`putSharedBoolean error${error}`)
}
)
}
function onPutIntButtonClicked() {
qt.shareData
.putInt(
shareDataParams,
'intKey',
22,
ESSharedDataMode.ES_SHARED_DATA_MODE_PRIVATE
)
.then(
(value) => {
qt.toast.showToast(`putSharedInt success${value}`)
},
(error) => {
qt.toast.showToast(`putSharedInt error${error}`)
}
)
}
function onPutLongButtonClicked() {
qt.shareData
.putLong(
shareDataParams,
'longKey',
22,
ESSharedDataMode.ES_SHARED_DATA_MODE_PRIVATE
)
.then(
(value) => {
qt.toast.showToast(`putSharedLong success${value}`)
},
(error) => {
qt.toast.showToast(`putSharedLong error${error}`)
}
)
}
function onPutStringButtonClicked() {
qt.shareData
.putString(
shareDataParams,
'stringKey',
'22',
ESSharedDataMode.ES_SHARED_DATA_MODE_PRIVATE
)
.then(
(value) => {
qt.toast.showToast(`putSharedString success${value}`)
},
(error) => {
qt.toast.showToast(`putSharedString error${error}`)
}
)
}
function onPutArrayButtonClicked() {
qt.shareData
.putArray(
shareDataParams,
'arrayKey',
[22],
ESSharedDataMode.ES_SHARED_DATA_MODE_PRIVATE
)
.then(
(value) => {
qt.toast.showToast(`putSharedArray success${value}`)
},
(error) => {
qt.toast.showToast(`putSharedArray error${error}`)
}
)
}
function onPutMapButtonClicked() {
const map = new Map<string, string>()
map.set('mapKey', 'mapValue')
qt.shareData
.putMap(
shareDataParams,
'mapKey',
map,
ESSharedDataMode.ES_SHARED_DATA_MODE_PRIVATE
)
.then(
(value) => {
qt.toast.showToast(`putSharedMap success${value}`)
},
(error) => {
qt.toast.showToast(`putSharedMap error${error}`)
}
)
}
return {
booleanValue,
intValue,
longValue,
stringValue,
arrayValue,
mapValue,
onGetBooleanButtonClicked,
onGetIntButtonClicked,
onGetLongButtonClicked,
onGetStringButtonClicked,
onGetArrayButtonClicked,
onGetMapButtonClicked,
onPutBooleanButtonClicked,
onPutIntButtonClicked,
onPutLongButtonClicked,
onPutStringButtonClicked,
onPutArrayButtonClicked,
onPutMapButtonClicked,
}
},
})
</script>
<style></style>
API #
DataStructure #
ESSharedData #
共享数据信息
Name | Description | Type | Default |
---|---|---|---|
mode | 共享模式 | ESSharedDataMode | - |
type | 数据类型 | ESSharedDataType | - |
secretKey | 数据秘钥 | string | - |
data | 数据 | any | - |
ESSharedDataMode #
共享模式
Name | Description | Type | Default |
---|---|---|---|
ES_SHARED_DATA_MODE_PRIVATE | 私有模式 | number | 0 |
ES_SHARED_DATA_MODE_WORLD_READABLE | 只读 | number | 1 |
ES_SHARED_DATA_MODE_WORLD_WRITEABLE | 可写 | number | 2 |
ESSharedDataType #
共享数据类型
Name | Description | Type | Default |
---|---|---|---|
ES_SHARED_DATA_TYPE_INT | int | number | 0 |
ES_SHARED_DATA_TYPE_LONG | long | number | 1 |
ES_SHARED_DATA_TYPE_FLOAT | float | number | 2 |
ES_SHARED_DATA_TYPE_STRING | string | number | 3 |
ES_SHARED_DATA_TYPE_BOOLEAN | boolean | number | 4 |
ES_SHARED_DATA_TYPE_MAP | map | number | 5 |
ES_SHARED_DATA_TYPE_ARRAY | array | number | 6 |
ESSharedDataParams #
共享数据接口参数
Name | Description | Type | Default |
---|---|---|---|
packageName | 快应用包名 | string | - |
secretKey | 秘钥 | string | - |
Exposes #
Name | Description | Type |
---|---|---|
getBoolean | 该方法获取boolean 类型共享数据 | Function |
putBoolean | 该方法存储boolean 类型共享数据 | Function |
getInt | 该方法获取int 类型共享数据 | Function |
putInt | 该方法存储int 类型共享数据 | Function |
getLong | 该方法获取long 类型共享数据 | Function |
putLong | 该方法存储long 类型共享数据 | Function |
getString | 该方法获取string 类型共享数据 | Function |
putString | 该方法存储string 类型共享数据 | Function |
getArray | 该方法获取Array 类型共享数据 | Function |
putArray | 该方法存储Array 类型共享数据 | Function |
getMap | 该方法获取Map 类型共享数据 | Function |
putMap | 该方法存储Map 类型共享数据 | Function |