Ionic 4原生插件无法正常工作

3

我在使用Ionic 4原生插件时遇到了问题。我已经安装了Ionic 4 Cordova原生插件"Geolocation",但当我在iOS或Android设备上运行应用程序时,只显示一个空白的白屏,什么也没有发生。

app.module.ts代码:

import {
  Geolocation
} from '@ionic-native/geolocation';
@NgModule({
  declarations: [AppComponent],
  entryComponents: [],
  imports: [
    BrowserModule,
    IonicModule.forRoot(),
    AppRoutingModule,
    ComponentsModule
  ],
  providers: [
    StatusBar,
    SplashScreen, ** Geolocation ** , {
      provide: RouteReuseStrategy,
      useClass: IonicRouteStrategy
    }
  ],
  bootstrap: [AppComponent]
})

Home.ts 代码:

import {
  Geolocation
} from '@ionic-native/geolocation';
constructor(private geolocation: Geolocation) {}

我不知道为什么会出现这种情况。但在Ionic 3项目中是可以工作的。

有没有人能给我任何想法,为什么会发生这种情况以及我做错了什么。


1
有任何错误吗?可能是rxjs版本的问题。请查看此帖子:https://dev59.com/Wa3la4cB1Zd3GeqPK1EG - Tim Martens
同样的问题也出现在任何本地插件中。这似乎是构造函数内部的注入问题。尝试删除“private geolocation: Geolocation”,应用程序应该可以正常运行。但没有插件... :/ - Borongaj
3
另外一条信息:似乎现在我们需要将 /ngx 后缀添加到 Ionic 插件的导入路径中。但是在我的电脑上找不到它。安装的 Ionic 包有误吗? - Borongaj
1个回答

10

我找到了解决方案:

  • 打开你的package.json文件并将@ionic-native/geolocation更新到5.0.0-beta.14(与@ionic-native/core相同)
  • 运行npm install命令
  • 更新所有的导入语句:import {Geolocation} from '@ionic-native/geolocation/ngx';(在app.module.ts和你的组件.ts文件中)

老兄,你救了我的一天 :D - Phantom007
如果我将@ionic-native/core更新到5.0.0-beta.14版本,那么我可能会面临什么其他困难?因为我的其余插件是在3.x或4.x版本的? - Raj
目前我使用的是 @ionic-native/core: 4.6.0 和 @ionic-native/camera: ^5.0.0 我的相机无法工作。 - Raj
@ionic-native/core 应该与插件拥有相同的版本:npm install @ionic-native/core@5.0.0-beta.24 --save。所有插件都应该如此。 - Borongaj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接