5

我正在使用 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>
4

1 回答 1

2

JS API 文档是基于可穿戴设备编写的。智能设备的标准用法如下:

vibrator.vibrate({
    mode: "short"
});

或者

vibrator.vibrate();
于 2021-05-25T01:00:22.600 回答