我正在开发一个用于使用谷歌Chrome的移动设备的网站,其目的是列出诸如时间(hh:mm)和电池级别等信息。我看到了电池网络API,但我遇到了一个奇怪的错误:单击以查看铬错误
下面是我为获得电池电量而使用的代码:
navigator.getBattery().then(function (battery) {
console.log(Math.round(battery.level * 100))
});昨天我出了错误,没有更改任何代码,它今天正在我的平板电脑上工作(铬版: 103),但我在另一款平板电脑(三星Galaxy A7 LITE,Chrome : 103)上进行了测试,我遇到了错误,我多次重新启动设备,使用电缆连接到我的笔记本电脑的devtools检查页面,但我解决不了这个错误。
我看到一个主题有同样的错误,但他正在开发一个网络工作者,这与我的上下文不一样。
无论何时调用navigator.getBattery(),如果错误出现在开始时,它将在以后保持未定义的状态,因此调用它的时间不成问题(我甚至将其绑定到body.onload,但它没有工作)。
我认为这可能是系统信息上的授权问题,但在Chrome的应用程序设置中,没有任何涉及电池的授权。
欢迎任何帮助:D
发布于 2022-09-02 08:28:59
我发现我的错误是哪里来的。这是HTTPS的一个问题,我的测试环境是在NGINX之后配置的,它为我的应用程序提供HTTP和HTTPS版本的服务,以便为我的每个项目使用一个证书,即我用https://访问的笔记本电脑前缀URL上的Chrome,它隐藏在navbar中,但在Chrome平板电脑或移动设备上并非如此,我以为我是在咨询HTTPS版本,但它是HTTP版本,而且在HTTP网站上无法访问Battery,因此需要使用HTTPS和证书进行安全连接。这与版本号无关,因为根据MDN文档,从Chrome 38开始就完全支持电池Web。
https://stackoverflow.com/questions/73571004
复制相似问题