Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
wychl
uni-app
提交
ec066665
U
uni-app
项目概览
wychl
/
uni-app
与 Fork 源项目一致
Fork自
DCloud / uni-app
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
ec066665
编写于
7月 27, 2019
作者:
fxy060608
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor accelerometer
上级
e0039c51
变更
7
显示空白变更内容
内联
并排
Showing
7 changed file
with
112 addition
and
53 deletion
+112
-53
src/core/helpers/api.js
src/core/helpers/api.js
+9
-0
src/core/helpers/apis.js
src/core/helpers/apis.js
+5
-5
src/core/helpers/protocol/base/upx2px.js
src/core/helpers/protocol/base/upx2px.js
+1
-1
src/core/service/api/device/accelerometer.js
src/core/service/api/device/accelerometer.js
+48
-0
src/core/service/bridge.js
src/core/service/bridge.js
+1
-1
src/platforms/h5/service/api/device/accelerometer.js
src/platforms/h5/service/api/device/accelerometer.js
+41
-46
src/platforms/h5/service/bridge.js
src/platforms/h5/service/bridge.js
+7
-0
未找到文件。
src/core/helpers/api.js
浏览文件 @
ec066665
...
...
@@ -159,6 +159,15 @@ function createApiCallback (apiName, params = {}, extras = {}) {
const
invokeCallback
=
function
(
res
)
{
res
.
errMsg
=
res
.
errMsg
||
apiName
+
'
:ok
'
// 部分 api 可能返回的 errMsg 的 api 名称部分不一致,格式化为正确的
if
(
res
.
errMsg
.
indexOf
(
'
:ok
'
)
!==
-
1
)
{
res
.
errMsg
=
apiName
+
'
:ok
'
}
else
if
(
res
.
errMsg
.
indexOf
(
'
:cancel
'
)
!==
-
1
)
{
res
.
errMsg
=
apiName
+
'
:cancel
'
}
else
if
(
res
.
errMsg
.
indexOf
(
'
:fail
'
)
!==
-
1
)
{
res
.
errMsg
=
apiName
+
'
:fail
'
}
const
errMsg
=
res
.
errMsg
if
(
errMsg
.
indexOf
(
apiName
+
'
:ok
'
)
===
0
)
{
...
...
src/core/helpers/apis.js
浏览文件 @
ec066665
...
...
@@ -207,4 +207,4 @@ const apis = [
...
third
]
export
default
apis
module
.
exports
=
apis
src/core/helpers/protocol/base/upx2px.js
浏览文件 @
ec066665
export
const
upx2px
=
[{
name
:
'
upx
'
,
type
:
Number
,
type
:
[
Number
,
String
]
,
required
:
true
}]
src/core/service/api/device/accelerometer.js
0 → 100644
浏览文件 @
ec066665
import
{
invoke
}
from
'
uni-core/service/bridge
'
import
{
onMethod
,
invokeMethod
}
from
'
../../platform
'
const
callbacks
=
[]
onMethod
(
'
onAccelerometerChange
'
,
function
(
res
)
{
callbacks
.
forEach
(
callbackId
=>
{
invoke
(
callbackId
,
res
)
})
})
let
isEnable
=
false
/**
* 监听加速度
* @param {*} callbackId
*/
export
function
onAccelerometerChange
(
callbackId
)
{
// TODO 当没有 start 时,添加 on 需要主动 start?
callbacks
.
push
(
callbackId
)
if
(
!
isEnable
)
{
startAccelerometer
()
}
}
export
function
startAccelerometer
({
interval
// TODO
}
=
{})
{
if
(
isEnable
)
{
return
}
isEnable
=
true
return
invokeMethod
(
'
enableAccelerometer
'
,
{
enable
:
true
})
}
export
function
stopAccelerometer
()
{
isEnable
=
false
return
invokeMethod
(
'
enableAccelerometer
'
,
{
enable
:
false
})
}
src/core/service/bridge.js
浏览文件 @
ec066665
src/platforms/h5/service/api/device/accelerometer.js
浏览文件 @
ec066665
const
callbacks
=
[]
var
listener
/**
* 监听加速度
* @param {*} callbackId
*/
export
function
onAccelerometerChange
(
callbackId
)
{
callbacks
.
push
(
callbackId
)
if
(
!
listener
)
{
startAccelerometer
()
}
import
{
publish
}
from
'
../../bridge
'
let
listener
export
function
enableAccelerometer
({
enable
})
{
return
enable
?
startAccelerometer
()
:
stopAccelerometer
()
}
/**
* 开始监听加速度数据
*/
export
function
startAccelerometer
()
{
const
{
invokeCallbackHandler
:
invoke
}
=
UniServiceJSBridge
function
startAccelerometer
()
{
if
(
window
.
DeviceMotionEvent
)
{
listener
=
function
(
event
)
{
callbacks
.
forEach
(
callbackId
=>
{
const
acceleration
=
event
.
acceleration
||
event
.
accelerationIncludingGravity
invoke
(
callbackId
,
{
publish
(
'
onAccelerometerChange
'
,
{
x
:
acceleration
.
x
||
0
,
y
:
acceleration
.
y
||
0
,
z
:
acceleration
.
z
||
0
,
errMsg
:
'
onAccelerometerChange:ok
'
})
})
}
window
.
addEventListener
(
'
devicemotion
'
,
listener
,
false
)
return
{}
...
...
@@ -38,7 +33,7 @@ export function startAccelerometer () {
/**
* 停止监听加速度数据
*/
export
function
stopAccelerometer
()
{
function
stopAccelerometer
()
{
if
(
listener
)
{
window
.
removeEventListener
(
'
devicemotion
'
,
listener
,
false
)
listener
=
null
...
...
src/platforms/h5/service/bridge.js
浏览文件 @
ec066665
/**
* 触发 service 层,与 onMethod 对应
*/
export
function
publish
(
name
,
res
)
{
return
UniServiceJSBridge
.
emit
(
'
api.
'
+
name
,
res
)
}
export
function
publishHandler
(
event
,
args
,
pageId
)
{
// h5 平台直接调用UniViewJSBridge
global
.
UniViewJSBridge
.
subscribeHandler
(
event
,
args
,
pageId
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录