在Ionic中要编辑哪些.ts文件以供插件使用?

时间:2019-05-07 01:08:06

标签: cordova ionic-framework gps ionic4

我是离子开发的新手,正在尝试学习。我正在创建一个基本的应用程序,仅显示GPS坐标即可学习基本的IOnic开发。

到目前为止,我已经掌握了所有基本布局,现在我正在尝试学习如何合并geolocation plugin

“用法”部分为您提供了一些用于实现插件的基本代码,但我不确定它会插入哪个文件。

我正在ionic-> gpsTest-> src-> app-> home

中编辑我的简单应用程序主页布局

我正在编辑home.page.html文件。当我编辑该文件并使用ionic serve命令时,它会在网络浏览器中显示我的应用程序,并且看起来不错。但是现在在哪里可以编辑离子结构页面的javascript?

然后我去this tutorial寻求添加gps插件的帮助。

但是当我说到那部分时:

  

现在要使用Geolocation API,您必须从   离子本机模块,因此请继续打开home.ts文件或任何位置   您想要您的代码来访问地理定位功能并添加它   代码行:

我不知道要编辑什么.ts文件。在我的ionic-> gpsTest-> src-> app-> home目录中,有三个.ts文件

  1. home.module.ts
  2. home.page.spec.ts
  3. home.page.ts

更新:

进行更多研究后,我发现了这篇文章here。那篇文章帮助我了解了离子结构。

然后我编辑了home.module.ts文件,如下所示:

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { IonicModule } from '@ionic/angular';
import { FormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router';
import { Geolocation } from '@ionic-native/geolocation/ngx';


import { HomePage } from './home.page';

@NgModule({
  imports: [
    CommonModule,
    FormsModule,
    IonicModule,
    RouterModule.forChild([
      {
        path: '',
        component: HomePage
      }
    ])
  ],
  declarations: [HomePage]
})
export class HomePageModule {}


constructor(private geolocation: Geolocation) {}

Geolocation.getCurrentPosition().then((data) => {
            console.log('My latitude : ', data.coords.latitude);
            console.log('My longitude: ', data.coords.longitude);
        });

但是当我尝试在浏览器中运行它时,出现此错误:

Cannot GET /

Update2:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { RouteReuseStrategy } from '@angular/router';

import { IonicModule, IonicRouteStrategy } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx';

import { AppComponent } from './app.component';
import { AppRoutingModule } from './app-routing.module';

import { Geolocation } from '@ionic-native/geolocation/ngx';

@NgModule({
  declarations: [AppComponent],
  entryComponents: [],
  imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule],
  providers: [
    StatusBar,
    SplashScreen,
    Geolocation,
    { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
  ],
  bootstrap: [AppComponent]
})
export class AppModule {}

1 个答案:

答案 0 :(得分:0)

在app.module.ts中,您是否将Geolocation作为提供程序?

import { BrowserModule } from '@angular/platform-browser';
import { ErrorHandler, NgModule } from '@angular/core';
import { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular';
import { SplashScreen } from '@ionic-native/splash-screen';
import { StatusBar } from '@ionic-native/status-bar';

import { MyApp } from './app.component';
import { HomePage } from '../pages/home/home';

import { Geolocation } from '@ionic-native/geolocation/ngx';


@NgModule({
  declarations: [
    MyApp,
    HomePage
  ],
  imports: [
    BrowserModule,
    IonicModule.forRoot(MyApp)
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    HomePage
  ],
  providers: [
    StatusBar,
    SplashScreen,
    Geolocation,
    {provide: ErrorHandler, useClass: IonicErrorHandler}
  ]
})
export class AppModule {}