将NativeScript插件与NativeScript Angular 2一起使用
问题描述:
我是新手NS和Angular 2平台。我尝试在我的NativeScript Angular 2项目中使用https://github.com/sitefinitysteve/nativescript-google-analytics这个插件。我的项目整个代码如下。当我测试我的项目时,我给错误为“找不到插件”。将NativeScript插件与NativeScript Angular 2一起使用
我共同的问题:“我可以用每NPM NS模块与NS角2?”如果我使用我该怎么做?
app.module.ts
import { NgModule, NO_ERRORS_SCHEMA } from "@angular/core";
import { NativeScriptModule } from "nativescript-angular/platform";
import { NativeScriptHttpModule } from "nativescript-angular/http";
import { AppComponent } from "./app.component";
import { CountriesComponent } from "./pages/countries.component";
@NgModule({
declarations: [AppComponent, CountriesComponent],
bootstrap: [AppComponent],
imports: [NativeScriptModule, NativeScriptHttpModule],
schemas: [NO_ERRORS_SCHEMA]
})
export class AppModule { }
main.ts
import { platformNativeScriptDynamic } from "nativescript-angular/platform";
import { AppModule } from "./app.module";
platformNativeScriptDynamic().bootstrapModule(AppModule);
app.component.ts
import { Component } from "@angular/core";
@Component({
selector: "my-app",
template: "<countries></countries>"
})
export class AppComponent {}
个countries.component.ts
import { Component } from "@angular/core";
import { JsonService } from '../services/json.service';
import { AdmobService } from '../services/admob.service';
import { AnalyticsService } from '../services/analytics.service';
@Component({
selector: "countries",
templateUrl: "pages/countries.component.html",
providers: [AdmobService, AnalyticsService]
})
export class CountriesComponent {
constructor(private _AdmobService: AdmobService, private _AnalyticsService: AnalyticsService) {
_AdmobService.createBanner();
}
ngOnInit() {
this. _AnalyticsService.initAnalytics();
}
}
analytics.service.ts
import { Component } from "@angular/core";
import { Injectable } from "@angular/core";
import * as googleAnalytics from 'nativescript-google-analytics';
@Injectable()
export class AnalyticsService {
public constructor() { }
public initAnalytics() {
googleAnalytics.initalize({
trackingId: 'UA-XXXXXXX-9',
dispatchInterval: 5,
logging: true
});
}
}
EDITED
我得到错误的波纹管
JS: TypeError: Cannot read property 'GoogleAnalytics' of undefined
JS: at Object.exports.initalize (/data/data/org.nativescript.JLB/files/app/tns_modules/nativescript-google-analytics/index.js:10:51)
JS: at AppComponent.initAnalytics (/data/data/org.nativescript.JLB/files/app/app.component.js:11:25)
JS: at AppComponent.ngOnInit (/data/data/org.nativescript.JLB/files/app/app.component.js:8:14)
JS: at Wrapper_AppComponent.ngDoCheck (/AppModule/AppComponent/wrapper.ngfactory.js:22:53)
JS: at DebugAppView.View_AppComponent_Host0.detectChangesInternal (/AppModule/AppComponent/host.ngfactory.js:28:26)
JS: at DebugAppView.AppView.detectChanges (/data/data/org.nativescript.JLB/files/app/tns_modules/@angular/core/bundles/core.umd.js:9354:18)
答
它应该是这样的
import { platformNativeScriptDynamic } from "nativescript-angular/platform";
import { AppModule } from "./app.module";
import * as googleAnalytics from 'nativescript-google-analytics';
googleAnalytics.initalize({
trackingId: 'UA-XXXXXXX-9',
dispatchInterval: 5,
logging: true
});
platformNativeScriptDynamic().bootstrapModule(AppModule);
如果你安装了谷歌分析与'tns plugin add nativescript-google-analytics'导入应该工作。 'tns'将插件安装到'npm' –
@MaximShoustin是的,我按照你在开始时写的那样做。您对我的整个代码方法有何看法?这样对吗? – Kerberos
初始化调用应放在main.ts或main.aot.ts文件之前,自举行 –