属性 类型“Navigator”上不存在蓝牙
Property bluetooth does not exist on type ‘Navigator'
我将 sample code 集成到我的 Angular 6 项目中。但是有一些编译错误。这些错误之一是:
属性 'bluetooth' 在类型 'Navigator' 上不存在。
为什么会出现这个错误,我该如何解决?
使用下面的模块安装各种网络蓝牙 api。您可以使用它来定义导航器蓝牙 api 对象的类型。
https://www.npmjs.com/package/@types/web-bluetooth
现在,如果您不需要指定导航器对象的确切类型(及其属性),那么您可以执行以下操作:
let mobileNavigatorObject: any = window.navigator;
if(mobileNavigatorObject && mobileNavigatorObject.bluetooth) {
// Here write your logic of mobileNavigatorObject.bluetooth.requestDevice();
}
我不确定为什么会发生此错误,但您可以通过安装类型 npm install --save-dev @types/web-bluetooth
并使用三斜线指令 /// <reference types="web-bluetooth" />
来修复它,如下所示:
/// <reference types="web-bluetooth" />
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
})
export class AppComponent {
title = 'myApp';
async test() {
try {
const device = await navigator.bluetooth.requestDevice({
filters: [
{
namePrefix: 'test',
},
],
optionalServices: ['test'],
});
} catch (error) {
console.error(error);
}
}
}
尝试安装以下 npm 模块:
npm install --save @types/web-bluetooth
并将此行插入代码的顶部:
/// <reference types="web-bluetooth" />
此外,如果您收到以下错误:
Failed to execute 'requestDevice' on 'Bluetooth': Must be handling a user gesture to show a permission request.
你也从用户调用中调用了蓝牙功能,例如。从按钮调用函数。
我将 sample code 集成到我的 Angular 6 项目中。但是有一些编译错误。这些错误之一是: 属性 'bluetooth' 在类型 'Navigator' 上不存在。
为什么会出现这个错误,我该如何解决?
使用下面的模块安装各种网络蓝牙 api。您可以使用它来定义导航器蓝牙 api 对象的类型。
https://www.npmjs.com/package/@types/web-bluetooth
现在,如果您不需要指定导航器对象的确切类型(及其属性),那么您可以执行以下操作:
let mobileNavigatorObject: any = window.navigator;
if(mobileNavigatorObject && mobileNavigatorObject.bluetooth) {
// Here write your logic of mobileNavigatorObject.bluetooth.requestDevice();
}
我不确定为什么会发生此错误,但您可以通过安装类型 npm install --save-dev @types/web-bluetooth
并使用三斜线指令 /// <reference types="web-bluetooth" />
来修复它,如下所示:
/// <reference types="web-bluetooth" />
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
})
export class AppComponent {
title = 'myApp';
async test() {
try {
const device = await navigator.bluetooth.requestDevice({
filters: [
{
namePrefix: 'test',
},
],
optionalServices: ['test'],
});
} catch (error) {
console.error(error);
}
}
}
尝试安装以下 npm 模块:
npm install --save @types/web-bluetooth
并将此行插入代码的顶部:
/// <reference types="web-bluetooth" />
此外,如果您收到以下错误:
Failed to execute 'requestDevice' on 'Bluetooth': Must be handling a user gesture to show a permission request.
你也从用户调用中调用了蓝牙功能,例如。从按钮调用函数。