簡體   English   中英

Ionic 3-網絡信息插件-Object(…)不是函數(…)

[英]Ionic 3 - network-information plugin - Object(…) is not a function(…)

我需要在ionic 3 angular 4項目中實現網絡信息插件。 我已經使用安裝了網絡插件

$ ionic cordova plugin add cordova-plugin-network-information  
$ npm install --save @ionic-native/network@5.0.0

安裝后,我在app.component.ts中使用了此插件,但是由於

錯誤錯誤:未捕獲(承諾):TypeError:對象(...)在設備或仿真器上都不是函數(…)

我正在共享在此應用程序中使用的本機核心版本和插件版本。

"@ionic-native/core": "5.0.0"
"@ionic-native/network": "5.0.0"
"cordova-plugin-network-information": "2.0.1"

請注意:我已經嘗試將"@ionic-native/core" to "5.2.0"升級"@ionic-native/core" to "5.2.0" ,將"@ionic-native/network" to "5.2.0" 但是問題沒有解決。

在這里,我無法將插件npm版本或"@ionic-native/core" to "4.2.0"降級"@ionic-native/core" to "4.2.0"因為我在此應用中使用了許多插件,它們在@版本“ 5.0.0”下運行良好。

以下是我的app.component.ts

import { Network } from '@ionic-native/network/ngx';
...
constructor(private network: Network) {
    this.platform.ready().then(() => {
        // watch network for a disconnection
        let disconnectSubscription = this.network.onDisconnect().subscribe(() => {
            console.log('network disconnected!');
        });
    })
}

以下是我的package.json

"dependencies": {
    "@angular/animations": "5.2.11",
    "@angular/common": "5.2.11",
    "@angular/compiler": "5.2.11",
    "@angular/compiler-cli": "5.2.11",
    "@angular/core": "5.2.11",
    ...
    "@ionic-native/core": "^5.0.0",
    "@ionic-native/network": "^5.0.0",
    ...
    "cordova-android": "7.1.4",
    "cordova-plugin-device": "2.0.2",
    "cordova-plugin-network-information": "2.0.1",
    "ionic-angular": "^3.9.2",
  }

以下是我的開發系統信息

Ionic:
    ionic (Ionic CLI)  : 4.3.1 (/usr/local/lib/node_modules/ionic)
    Ionic Framework    : ionic-angular 3.9.2
    @ionic/app-scripts : 3.2.1

Cordova:
   cordova (Cordova CLI) : 8.1.2 (cordova-lib@8.1.1)
   Cordova Platforms     : android 7.1.4
   Cordova Plugins       : no whitelisted plugins

System:
   Android SDK Tools : 26.1.1 (/Users/###/Library/Android/sdk)
   ios-deploy        : 1.9.4
   NodeJS            : v8.11.3 (/usr/local/bin/node)
   npm               : 6.4.1
   OS                : macOS High Sierra
   Xcode             : Xcode 10.1 Build version 10B61

有沒有人遇到這個問題? 請幫助我,因為如果沒有網絡插件,我將無法前進。 謝謝你的時間。

問題是您正在使用Ionic版本4的/ngx導入。如果您閱讀更改日志 ,將會看到版本5及更高版本Requires Angular 7.1 and TypeScript 3.1

嘗試像這樣將插件降級到4.20.0:

npm uninstall @ionic-native/network

然后npm install @ionic-native/network@4.20.0

然后像這樣import { Network } from '@ionic-native/network';刪除ngx: import { Network } from '@ionic-native/network';

從Ionic 4發行以來,為Ionic 3安裝Ionic Native要求您添加@4以獲得最新的兼容版本。 在這種情況下,以及其他所有涉及Ionic 3的情況下,您都應該這樣做

npm install @ionic-native/network@4

對於網絡,

npm install --save @ionic-native/barcode-scanner@4 

對於條形碼掃描器,

npm install --save @ionic-native/network@4, 
npm install --save @ionic-native/bluetooth-le@4 

用於BluetoothLE。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM