wearables - HarmonyOS 可穿戴振动器未激活
问题描述
我正在使用 JS 框架创建一个 HarmonyOS 可穿戴应用程序,并且我想使用振动器。手表肯定有一个振动器,因为当我在设置应用程序中使用滚动轮时我能感觉到它。
所以我请求了文件中的 system_grantohos.permission.VIBRATE
权限,如此处所述config.json
"module": {
...
"reqPermissions": [
{
"name": "ohos.permission.VIBRATE",
"reason": "Make vibrates"
}
]
...
}
那么像这样使用进口振动器应该很简单
import vibrator from '@system.vibrator';
export default {
// ...
onShow() {
console.log("VIBRATOR");
vibrator.vibrate({
mode : "long",
success: () => console.debug("Vibrator Success"),
fail : (data, code) => console.log("Vibrator handle fail, data = ${data}, code = ${code}"),
complete : () => console.debug("Vibrator Complete")
});
}
// ...
}
我确实VIBRATOR
登录了,HiLog
但振动器回调中没有其他日志,设备也没有振动。
有谁知道我做错了什么?
编辑:我注意到日志后有一堆错误VIBRATOR
日志。我无法弄清楚它们的含义,所以我将它们发布在这里。
D 03B00/JSApp: app Log: VIBRATOR
E 03900/Ace: [<private> (<private>)] ace Log: [JS Framework] Failed to invoke the event handler of "viewappear" on div (_root):
E 03900/Ace: TypeError: value has no property
E 03900/Ace: [<private> (<private>)] Qjs FireAsyncEvent FAILED !! jsCall: <private>
E 03900/Ace: [<private> (<private>)] [DUMP] <private>
E 03900/Ace: [<private> (<private>)] <private>
解决方案
JS API 文档是基于可穿戴设备编写的。智能设备的标准用法如下:
vibrator.vibrate({
mode: "short"
});
或者
vibrator.vibrate();
推荐阅读
- firebase-hosting - 基于浏览器语言的 Firebase 托管重写规则
- vue.js - 如果记录不存在,Vue 会检查嵌套的 v-for
- loops - How do I create an iterator over an array which takes values from index i and i+1?
- javascript - 如何在本机反应中将对象从函数传递到组件
- javascript - .focus() 不是函数
- java - Java Spring 控制器响应未转换为 JSON
- sql - 查找只有两行的表。访问 2016
- python - 熊猫样式背景渐变未显示在 jupyter 笔记本中
- exoplayer - 从 mp3 文件为 exoplayer 创建 DRM 内容
- php - 具有数据库列平均值的 CanvasJS 图表