尝试创建一个本地使用的应用程序,它从我的键盘接收消息。每当我调用navigator.requestMIDIAccess()
时,我都会得到TypeError: navigator.requestMIDIAccess is not a function
。但是我可以去实现这个API的其他网站,不会得到那个错误,提示选择我的键盘作为输入,应用程序接收到的事件就很好。如果有帮助的话,我在Firefox和Ubuntu上,通过file:///
访问我的应用程序。如果我在网站上,开发人员控制台甚至会自动完成navigator.requestMIDIAccess()
,但当我查看本地文件时不会。我以为在本地使用Webcenter比在线使用更简单?这是怎么回事?!
我已尝试使用
navigator.permissions.query({ name: "midi", sysex: true }).then((result) => {
console.log(result.state);
});
字符串
控制台日志“不支持”,而不是“否认”。我也检查了window.isSecureContext
,它是“真的”。我不知道还需要检查什么。我已经阅读了与此错误有关的duckduckgo结果的前2或3页,但遗憾的是,它们似乎都指向Firefox根本不支持此API的日子,所以不涵盖我的问题。再次我知道我的浏览器支持navigator.requestMIDIAccess()
,因为当我浏览其他使用此API的应用程序时,它们工作得很好,当我查看任何非本地网站时,控制台识别navigator.requestMIDIAccess()
,但不是在查看我的本地应用程序与file:///
地址。我真的很想知道如何让webserver工作。
1条答案
按热度按时间l7mqbcuq1#
Firefox不支持file://URL上的
navigator.requestMIDIAccess
API(即使它是一个安全上下文)。这可能会随着Bug 1850446而改变。