假设我有以下主要内容:
import { Component } from "@angular/core";
@Component({
selector: "my-app",
templateUrl: "./layouts/main-layout.html"
})
export class AppComponent {
constructor(
){}
ngAfterViewInit() {
//console.log( com.google.android.gms.maps.CameraUpdateFactory );
}
}如何调用注释掉的函数,就在app.component.ts中?
因为它给了我"com" not found错误。
我在dependencies { compile 'com.google.android.gms:play-services-maps:9.8.0' }文件中添加了App_Resources/Android/app.gradle。
我还检查了nativescript-google-maps-sdk插件是如何实现的。它似乎也是这样做的--它有自己的nativescript-google-maps-sdk/platforms/android/include.gradle文件,其中还定义了来自本地android的google服务地图,在nativescript-google-maps-sdk/map-view.android.js中,我看到它没有问题地使用这样一个命令:
var cameraUpdate = com.google.android.gms.maps.CameraUpdateFactory.newCameraPosition( cameraPosition );
任何见解都值得赞赏。
发布于 2016-11-09 11:37:34
将其添加到您的文件declare var com:any;中,并读取此How can I access Native api in NativeScript when I use Typescript
发布于 2016-11-09 11:51:25
您需要首先了解错误发生的原因--对于任何TypeScript都缺少com定义,然后是什么。com在TypeScript或JavaScript中不是一个有效的可识别对象,因此您需要
(糟糕)指示TypeScript编译器不要抱怨缺少定义,因为您更了解com.google.android.gms.maps.CameraUpdateFactory是一个有效的对象。在noEmitOnErrors中禁用tsconfig.json
(好)提供类型(通常以.d.ts的形式出现),以“熟悉”外星类。
declare module com {
export module google {
export module android {
export module gms {
export module maps {
export class CameraUpdateFactory {
public static newCameraPosition(param0: any): any
}
}
}
}
}
}
let cameraUpdate: any = com.google.android.gms.maps.CameraUpdateFactory.newCameraPosition;或者,如果您不能麻烦地描述整个命名空间,则使用let com: any。可以为android/java库自动生成类型,但是类型记录/JavaScript中有一个限制,目前无法将google库类型与android.sdk和支持库类型一起导出。
https://stackoverflow.com/questions/40505450
复制相似问题