使用 android 的本机脚本
Nativescript using android
我是 NativeScript 的新手。
我想弄清楚如何使用 Bluetooth Native Api(Classic 而非 LE)。
我很难找到如何与蓝牙交互 api。
我碰到的第一堵墙是在我的打字稿代码中使用 android。
例如在组件中,如果我这样做:
ngOnInit(): void {
console.info(android.os.Build.VERSION.SDK_INT)
}
我收到错误:
JS:错误错误:未捕获(承诺):TypeError:无法读取未定义的属性 'os'
有什么建议吗?
要通过 TypeScript 访问本机 API(以及更好的智能感知),您需要生成的声明文件。幸运的是,您不必提供这些文件,因为它们已经可以通过 tns-platform-declarations plugin
要安装声明,请在您的 Angular 项目中执行 fiollwing
npm i tns-platform-declarations --save-dev
然后创建 references.d.ts 文件,内容如下:
/// <reference path="./node_modules/tns-platform-declarations/ios.d.ts" />
/// <reference path="./node_modules/tns-platform-declarations/android.d.ts" />
最后,修改 tsconfig.json 文件的内容以包含以下内容:
{
"compilerOptions": {
"module": "commonjs",
"target": "es5",
"experimentalDecorators": true,
"lib": [
"es6",
"dom"
]
}
}
如果出于某种原因您不需要 IntelliSense,您可以跳过所有这些,只需在 *.ts 文件的开头给 android 一个类型
declare var android: any;
但是,我强烈推荐第一种方法,因为它会为您提供真正庞大的本机 API 的非常好的 IntelliSense
我是 NativeScript 的新手。 我想弄清楚如何使用 Bluetooth Native Api(Classic 而非 LE)。 我很难找到如何与蓝牙交互 api。
我碰到的第一堵墙是在我的打字稿代码中使用 android。
例如在组件中,如果我这样做:
ngOnInit(): void {
console.info(android.os.Build.VERSION.SDK_INT)
}
我收到错误:
JS:错误错误:未捕获(承诺):TypeError:无法读取未定义的属性 'os'
有什么建议吗?
要通过 TypeScript 访问本机 API(以及更好的智能感知),您需要生成的声明文件。幸运的是,您不必提供这些文件,因为它们已经可以通过 tns-platform-declarations plugin
要安装声明,请在您的 Angular 项目中执行 fiollwing
npm i tns-platform-declarations --save-dev
然后创建 references.d.ts 文件,内容如下:
/// <reference path="./node_modules/tns-platform-declarations/ios.d.ts" />
/// <reference path="./node_modules/tns-platform-declarations/android.d.ts" />
最后,修改 tsconfig.json 文件的内容以包含以下内容:
{
"compilerOptions": {
"module": "commonjs",
"target": "es5",
"experimentalDecorators": true,
"lib": [
"es6",
"dom"
]
}
}
如果出于某种原因您不需要 IntelliSense,您可以跳过所有这些,只需在 *.ts 文件的开头给 android 一个类型
declare var android: any;
但是,我强烈推荐第一种方法,因为它会为您提供真正庞大的本机 API 的非常好的 IntelliSense