From 33093c45b032390bf62b4f58edc2fbaf4f3a9443 Mon Sep 17 00:00:00 2001 From: qiang Date: Thu, 24 Jun 2021 11:08:03 +0800 Subject: [PATCH] feat(App): ibeacon --- packages/uni-api/src/index.ts | 1 + .../uni-api/src/protocols/device/ibeacon.ts | 21 +++++++++ .../src/service/api/device/ibeacon.ts | 45 +++++++++++++++++++ .../uni-app-plus/src/service/api/index.ts | 1 + 4 files changed, 68 insertions(+) create mode 100644 packages/uni-api/src/protocols/device/ibeacon.ts create mode 100644 packages/uni-app-plus/src/service/api/device/ibeacon.ts diff --git a/packages/uni-api/src/index.ts b/packages/uni-api/src/index.ts index c90424660..737381c34 100644 --- a/packages/uni-api/src/index.ts +++ b/packages/uni-api/src/index.ts @@ -28,6 +28,7 @@ export * from './protocols/device/accelerometer' export * from './protocols/device/compass' export * from './protocols/device/vibrate' export * from './protocols/device/bluetooth' +export * from './protocols/device/ibeacon' export * from './protocols/storage/storage' diff --git a/packages/uni-api/src/protocols/device/ibeacon.ts b/packages/uni-api/src/protocols/device/ibeacon.ts new file mode 100644 index 000000000..a7a8816d5 --- /dev/null +++ b/packages/uni-api/src/protocols/device/ibeacon.ts @@ -0,0 +1,21 @@ +export const API_ON_BEACON_UPDATE = 'onBeaconUpdate' +export type API_TYPE_ON_BEACON_UPDATE = typeof uni.onBeaconUpdate + +export const API_ON_BEACON_SERVICE_CHANGE = 'onBeaconServiceChange' +export type API_TYPE_ON_BEACON_SERVICE_CHANGE = typeof uni.onBeaconServiceChange + +export const API_GET_BEACONS = 'getBeacons' +export type API_TYPE_GET_BEACONS = typeof uni.getBeacons + +export const API_START_BEACON_DISCOVERY = 'startBeaconDiscovery' +export type API_TYPE_START_BEACON_DISCOVERY = typeof uni.startBeaconDiscovery +export const StartBeaconDiscoveryProtocol: ApiProtocol = + { + uuids: { + type: Array, + required: true, + }, + } + +export const API_STOP_BEACON_DISCOVERY = 'stopBeaconDiscovery' +export type API_TYPE_STOP_BEACON_DISCOVERY = typeof uni.stopBeaconDiscovery diff --git a/packages/uni-app-plus/src/service/api/device/ibeacon.ts b/packages/uni-app-plus/src/service/api/device/ibeacon.ts new file mode 100644 index 000000000..662e7c6ae --- /dev/null +++ b/packages/uni-app-plus/src/service/api/device/ibeacon.ts @@ -0,0 +1,45 @@ +import { + defineOnApi, + defineAsyncApi, + API_ON_BEACON_UPDATE, + API_TYPE_ON_BEACON_UPDATE, + API_ON_BEACON_SERVICE_CHANGE, + API_TYPE_ON_BEACON_SERVICE_CHANGE, + API_GET_BEACONS, + API_TYPE_GET_BEACONS, + API_START_BEACON_DISCOVERY, + API_TYPE_START_BEACON_DISCOVERY, + StartBeaconDiscoveryProtocol, + API_STOP_BEACON_DISCOVERY, + API_TYPE_STOP_BEACON_DISCOVERY, +} from '@dcloudio/uni-api' +import { warpPlusEvent, warpPlusMethod } from '../../../helpers/plus' + +export const onBeaconUpdate = defineOnApi( + API_ON_BEACON_UPDATE, + warpPlusEvent(() => plus.ibeacon.onBeaconUpdate, API_ON_BEACON_UPDATE) +) +export const onBeaconServiceChange = + defineOnApi( + API_ON_BEACON_SERVICE_CHANGE, + warpPlusEvent( + () => plus.ibeacon.onBeaconServiceChange, + API_ON_BEACON_SERVICE_CHANGE + ) + ) + +export const getBeacons = defineAsyncApi( + API_GET_BEACONS, + warpPlusMethod(() => plus.ibeacon.getBeacons) +) +export const startBeaconDiscovery = + defineAsyncApi( + API_START_BEACON_DISCOVERY, + warpPlusMethod(() => plus.ibeacon.startBeaconDiscovery), + StartBeaconDiscoveryProtocol + ) +export const stopBeaconDiscovery = + defineAsyncApi( + API_STOP_BEACON_DISCOVERY, + warpPlusMethod(() => plus.ibeacon.stopBeaconDiscovery) + ) diff --git a/packages/uni-app-plus/src/service/api/index.ts b/packages/uni-app-plus/src/service/api/index.ts index 3e3162dbf..fabde7b38 100644 --- a/packages/uni-app-plus/src/service/api/index.ts +++ b/packages/uni-app-plus/src/service/api/index.ts @@ -5,6 +5,7 @@ export * from './device/compass' export * from './device/vibrate' export * from './device/accelerometer' export * from './device/bluetooth' +export * from './device/ibeacon' export * from './media/getImageInfo' export * from './media/getVideoInfo' -- GitLab