Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-app
提交
8ee0d17c
U
uni-app
项目概览
DCloud
/
uni-app
4 个月 前同步成功
通知
730
Star
38706
Fork
3642
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
7
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
7
Issue
7
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
8ee0d17c
编写于
9月 14, 2020
作者:
Q
qiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: 修复蓝牙接口可以添加多次事件监听的问题 fixed #1988 #1964 #958
上级
9bd582ce
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
79 addition
and
210 deletion
+79
-210
src/core/service/api/device/bluetooth.js
src/core/service/api/device/bluetooth.js
+0
-24
src/platforms/app-plus/service/api/device/bluetooth.js
src/platforms/app-plus/service/api/device/bluetooth.js
+32
-125
src/platforms/app-plus/service/api/device/ibeacon.js
src/platforms/app-plus/service/api/device/ibeacon.js
+8
-61
src/platforms/app-plus/service/api/util.js
src/platforms/app-plus/service/api/util.js
+39
-0
未找到文件。
src/core/service/api/device/bluetooth.js
已删除
100644 → 0
浏览文件 @
9bd582ce
import
{
invoke
}
from
'
uni-core/service/bridge
'
import
{
onMethod
}
from
'
../../platform
'
function
on
(
method
)
{
const
callbacks
=
[]
onMethod
(
method
,
data
=>
{
callbacks
.
forEach
(
callbackId
=>
{
invoke
(
callbackId
,
data
)
})
})
return
function
(
callbackId
)
{
callbacks
.
push
(
callbackId
)
}
}
export
const
onBluetoothDeviceFound
=
on
(
'
onBluetoothDeviceFound
'
)
export
const
onBluetoothAdapterStateChange
=
on
(
'
onBluetoothAdapterStateChange
'
)
export
const
onBLEConnectionStateChange
=
on
(
'
onBLEConnectionStateChange
'
)
export
const
onBLECharacteristicValueChange
=
on
(
'
onBLECharacteristicValueChange
'
)
src/platforms/app-plus/service/api/device/bluetooth.js
浏览文件 @
8ee0d17c
import
{
import
{
invoke
,
warpPlusEvent
,
publish
warpPlusMethod
}
from
'
../
../bridge
'
}
from
'
../
util
'
/**
export
const
onBluetoothDeviceFound
=
warpPlusEvent
(
plus
.
bluetooth
,
'
onBluetoothDeviceFound
'
)
* 执行蓝牙相关方法
export
const
onBluetoothAdapterStateChange
=
warpPlusEvent
(
plus
.
bluetooth
,
'
onBluetoothAdapterStateChange
'
)
*/
export
const
onBLEConnectionStateChange
=
warpPlusEvent
(
plus
.
bluetooth
,
'
onBLEConnectionStateChange
'
)
function
bluetoothExec
(
method
,
callbackId
,
data
=
{},
beforeSuccess
)
{
export
const
onBLECharacteristicValueChange
=
warpPlusEvent
(
plus
.
bluetooth
,
'
onBLECharacteristicValueChange
'
)
var
deviceId
=
data
.
deviceId
function
toUpperCase
(
options
=
{})
{
const
deviceId
=
options
.
deviceId
if
(
deviceId
)
{
if
(
deviceId
)
{
data
.
deviceId
=
deviceId
.
toUpperCase
()
options
.
deviceId
=
deviceId
.
toUpperCase
()
}
}
var
serviceId
=
data
.
serviceId
const
serviceId
=
options
.
serviceId
if
(
serviceId
)
{
if
(
serviceId
)
{
data
.
serviceId
=
serviceId
.
toUpperCase
()
options
.
serviceId
=
serviceId
.
toUpperCase
()
}
}
return
options
plus
.
bluetooth
[
method
.
replace
(
'
Changed
'
,
'
Change
'
)](
Object
.
assign
(
data
,
{
}
success
(
data
)
{
if
(
typeof
beforeSuccess
===
'
function
'
)
{
export
const
openBluetoothAdapter
=
warpPlusMethod
(
plus
.
bluetooth
,
'
openBluetoothAdapter
'
)
beforeSuccess
(
data
)
export
const
closeBluetoothAdapter
=
warpPlusMethod
(
plus
.
bluetooth
,
'
closeBluetoothAdapter
'
)
}
export
const
getBluetoothAdapterState
=
warpPlusMethod
(
plus
.
bluetooth
,
'
getBluetoothAdapterState
'
)
invoke
(
callbackId
,
Object
.
assign
({},
data
,
{
export
const
startBluetoothDevicesDiscovery
=
warpPlusMethod
(
plus
.
bluetooth
,
'
startBluetoothDevicesDiscovery
'
,
toUpperCase
)
errMsg
:
`
${
method
}
:ok`
,
export
const
stopBluetoothDevicesDiscovery
=
warpPlusMethod
(
plus
.
bluetooth
,
'
stopBluetoothDevicesDiscovery
'
)
code
:
undefined
,
export
const
getBluetoothDevices
=
warpPlusMethod
(
plus
.
bluetooth
,
'
getBluetoothDevices
'
)
message
:
undefined
export
const
getConnectedBluetoothDevices
=
warpPlusMethod
(
plus
.
bluetooth
,
'
getConnectedBluetoothDevices
'
,
toUpperCase
)
}))
export
const
createBLEConnection
=
warpPlusMethod
(
plus
.
bluetooth
,
'
createBLEConnection
'
,
toUpperCase
)
},
export
const
closeBLEConnection
=
warpPlusMethod
(
plus
.
bluetooth
,
'
closeBLEConnection
'
,
toUpperCase
)
fail
(
error
=
{})
{
export
const
getBLEDeviceServices
=
warpPlusMethod
(
plus
.
bluetooth
,
'
getBLEDeviceServices
'
,
toUpperCase
)
invoke
(
callbackId
,
{
export
const
getBLEDeviceCharacteristics
=
warpPlusMethod
(
plus
.
bluetooth
,
'
getBLEDeviceCharacteristics
'
,
toUpperCase
)
errMsg
:
`
${
method
}
:fail
${
error
.
message
||
''
}
`
,
export
const
notifyBLECharacteristicValueChange
=
warpPlusMethod
(
plus
.
bluetooth
,
'
notifyBLECharacteristicValueChange
'
,
toUpperCase
)
errCode
:
error
.
code
||
0
export
const
readBLECharacteristicValue
=
warpPlusMethod
(
plus
.
bluetooth
,
'
readBLECharacteristicValue
'
,
toUpperCase
)
})
export
const
writeBLECharacteristicValue
=
warpPlusMethod
(
plus
.
bluetooth
,
'
writeBLECharacteristicValue
'
,
toUpperCase
)
}
export
const
setBLEMTU
=
warpPlusMethod
(
plus
.
bluetooth
,
'
setBLEMTU
'
,
toUpperCase
)
}))
export
const
getBLEDeviceRSSI
=
warpPlusMethod
(
plus
.
bluetooth
,
'
getBLEDeviceRSSI
'
,
toUpperCase
)
}
/**
* 监听蓝牙相关事件
*/
function
bluetoothOn
(
method
,
beforeSuccess
)
{
plus
.
bluetooth
[
method
.
replace
(
'
Changed
'
,
'
Change
'
)](
function
(
data
)
{
if
(
typeof
beforeSuccess
===
'
function
'
)
{
beforeSuccess
(
data
)
}
publish
(
method
,
Object
.
assign
({},
data
,
{
code
:
undefined
,
message
:
undefined
}))
})
return
true
}
var
onBluetoothAdapterStateChange
var
onBluetoothDeviceFound
var
onBLEConnectionStateChange
var
onBLECharacteristicValueChange
export
function
openBluetoothAdapter
(
data
,
callbackId
)
{
onBluetoothAdapterStateChange
=
onBluetoothAdapterStateChange
||
bluetoothOn
(
'
onBluetoothAdapterStateChange
'
)
bluetoothExec
(
'
openBluetoothAdapter
'
,
callbackId
)
}
export
function
closeBluetoothAdapter
(
data
,
callbackId
)
{
bluetoothExec
(
'
closeBluetoothAdapter
'
,
callbackId
)
}
export
function
getBluetoothAdapterState
(
data
,
callbackId
)
{
bluetoothExec
(
'
getBluetoothAdapterState
'
,
callbackId
)
}
export
function
startBluetoothDevicesDiscovery
(
data
,
callbackId
)
{
onBluetoothDeviceFound
=
onBluetoothDeviceFound
||
bluetoothOn
(
'
onBluetoothDeviceFound
'
)
bluetoothExec
(
'
startBluetoothDevicesDiscovery
'
,
callbackId
,
data
)
}
export
function
stopBluetoothDevicesDiscovery
(
data
,
callbackId
)
{
bluetoothExec
(
'
stopBluetoothDevicesDiscovery
'
,
callbackId
)
}
export
function
getBluetoothDevices
(
data
,
callbackId
)
{
bluetoothExec
(
'
getBluetoothDevices
'
,
callbackId
,
{})
}
export
function
getConnectedBluetoothDevices
(
data
,
callbackId
)
{
bluetoothExec
(
'
getConnectedBluetoothDevices
'
,
callbackId
,
data
)
}
export
function
createBLEConnection
(
data
,
callbackId
)
{
onBLEConnectionStateChange
=
onBLEConnectionStateChange
||
bluetoothOn
(
'
onBLEConnectionStateChange
'
)
bluetoothExec
(
'
createBLEConnection
'
,
callbackId
,
data
)
}
export
function
closeBLEConnection
(
data
,
callbackId
)
{
bluetoothExec
(
'
closeBLEConnection
'
,
callbackId
,
data
)
}
export
function
getBLEDeviceServices
(
data
,
callbackId
)
{
bluetoothExec
(
'
getBLEDeviceServices
'
,
callbackId
,
data
)
}
export
function
getBLEDeviceCharacteristics
(
data
,
callbackId
)
{
bluetoothExec
(
'
getBLEDeviceCharacteristics
'
,
callbackId
,
data
)
}
export
function
notifyBLECharacteristicValueChange
(
data
,
callbackId
)
{
onBLECharacteristicValueChange
=
onBLECharacteristicValueChange
||
bluetoothOn
(
'
onBLECharacteristicValueChange
'
)
bluetoothExec
(
'
notifyBLECharacteristicValueChange
'
,
callbackId
,
data
)
}
export
function
notifyBLECharacteristicValueChanged
(
data
,
callbackId
)
{
onBLECharacteristicValueChange
=
onBLECharacteristicValueChange
||
bluetoothOn
(
'
onBLECharacteristicValueChange
'
)
bluetoothExec
(
'
notifyBLECharacteristicValueChanged
'
,
callbackId
,
data
)
}
export
function
readBLECharacteristicValue
(
data
,
callbackId
)
{
onBLECharacteristicValueChange
=
onBLECharacteristicValueChange
||
bluetoothOn
(
'
onBLECharacteristicValueChange
'
)
bluetoothExec
(
'
readBLECharacteristicValue
'
,
callbackId
,
data
)
}
export
function
writeBLECharacteristicValue
(
data
,
callbackId
)
{
bluetoothExec
(
'
writeBLECharacteristicValue
'
,
callbackId
,
data
)
}
export
function
setBLEMTU
(
data
,
callbackId
)
{
bluetoothExec
(
'
setBLEMTU
'
,
callbackId
,
data
)
}
export
function
getBLEDeviceRSSI
(
data
,
callbackId
)
{
bluetoothExec
(
'
getBLEDeviceRSSI
'
,
callbackId
,
data
)
}
src/platforms/app-plus/service/api/device/ibeacon.js
浏览文件 @
8ee0d17c
import
{
import
{
invoke
warpPlusEvent
,
}
from
'
../../bridge
'
warpPlusMethod
}
from
'
../util
'
export
function
onBeaconUpdate
(
callbackId
)
{
export
const
onBeaconUpdate
=
warpPlusEvent
(
plus
.
ibeacon
,
'
onBeaconUpdate
'
)
plus
.
ibeacon
.
onBeaconUpdate
(
data
=>
invoke
(
callbackId
,
data
))
export
const
onBeaconServiceChange
=
warpPlusEvent
(
plus
.
ibeacon
,
'
onBeaconServiceChange
'
)
}
export
function
onBeaconServiceChange
(
callbackId
)
{
export
const
getBeacons
=
warpPlusMethod
(
plus
.
ibeacon
,
'
getBeacons
'
)
plus
.
ibeacon
.
onBeaconServiceChange
(
data
=>
invoke
(
callbackId
,
data
))
export
const
startBeaconDiscovery
=
warpPlusMethod
(
plus
.
ibeacon
,
'
startBeaconDiscovery
'
)
}
export
const
stopBeaconDiscovery
=
warpPlusMethod
(
plus
.
ibeacon
,
'
stopBeaconDiscovery
'
)
export
const
onBeaconServiceChanged
=
onBeaconServiceChange
export
function
getBeacons
(
params
,
callbackId
)
{
plus
.
ibeacon
.
getBeacons
({
success
:
(
result
)
=>
{
invoke
(
callbackId
,
{
errMsg
:
'
getBeacons:ok
'
,
beacons
:
result
.
beacons
})
},
fail
:
(
error
)
=>
{
invoke
(
callbackId
,
{
errMsg
:
'
getBeacons:fail:
'
+
error
.
message
})
}
})
}
export
function
startBeaconDiscovery
({
uuids
,
ignoreBluetoothAvailable
=
false
},
callbackId
)
{
plus
.
ibeacon
.
startBeaconDiscovery
({
uuids
,
ignoreBluetoothAvailable
,
success
:
(
result
)
=>
{
invoke
(
callbackId
,
{
errMsg
:
'
startBeaconDiscovery:ok
'
,
beacons
:
result
.
beacons
})
},
fail
:
(
error
)
=>
{
invoke
(
callbackId
,
{
errMsg
:
'
startBeaconDiscovery:fail:
'
+
error
.
message
})
}
})
}
export
function
stopBeaconDiscovery
(
params
,
callbackId
)
{
plus
.
ibeacon
.
stopBeaconDiscovery
({
success
:
(
result
)
=>
{
invoke
(
callbackId
,
Object
.
assign
(
result
,
{
errMsg
:
'
stopBeaconDiscovery:ok
'
}))
},
fail
:
(
error
)
=>
{
invoke
(
callbackId
,
{
errMsg
:
'
stopBeaconDiscovery:fail:
'
+
error
.
message
})
}
})
}
src/platforms/app-plus/service/api/util.js
浏览文件 @
8ee0d17c
import
{
invoke
}
from
'
../bridge
'
export
{
export
{
isTabBarPage
isTabBarPage
}
from
'
../bridge
'
}
from
'
../bridge
'
...
@@ -162,3 +166,38 @@ export function getScreenInfo () {
...
@@ -162,3 +166,38 @@ export function getScreenInfo () {
screenHeight
:
Math
.
round
(
resolutionHeight
)
screenHeight
:
Math
.
round
(
resolutionHeight
)
}
}
}
}
export
function
warpPlusEvent
(
origin
,
name
)
{
return
function
(
callbackId
)
{
origin
[
name
](
function
(
data
)
{
if
(
data
)
{
delete
data
.
code
delete
data
.
message
}
invoke
(
callbackId
,
data
)
})
}
}
export
function
warpPlusMethod
(
origin
,
name
,
before
)
{
return
function
(
options
,
callbackId
)
{
if
(
typeof
before
===
'
function
'
)
{
options
=
before
(
options
)
}
origin
[
name
](
Object
.
assign
(
options
,
{
success
(
data
=
{})
{
delete
data
.
code
delete
data
.
message
invoke
(
callbackId
,
Object
.
assign
({},
data
,
{
errMsg
:
`
${
name
}
:ok`
}))
},
fail
(
error
=
{})
{
invoke
(
callbackId
,
{
errMsg
:
`
${
name
}
:fail
${
error
.
message
||
''
}
`
,
errCode
:
error
.
code
||
0
})
}
}))
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录