Ionic 3 - плагин сетевой информации - Объект (...) не является функцией (…) - PullRequest
0 голосов
/ 25 февраля 2019

Мне нужно реализовать плагин с информацией о сети в проекте ionic 3 angular 4.Я установил сетевой плагин, используя

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

. После установки я использовал этот плагин в app.component.ts , но я получаю сообщение об ошибке, так как

ОШИБКА Ошибка: Uncaught (в обещании): TypeError: Object (...) не является функцией (…) на устройстве или эмуляторе.

Я делюсь версиями собственного ядра и плагинов, которые я использовал в этом приложении.

"@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/network" to "5.2.0".Но проблема не была решена.

Здесь я не могу ухудшить версию npm плагина или "@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

Кто-нибудь сталкивался с этой проблемой?Пожалуйста, помогите мне, так как я не могу двигаться вперед без сетевого плагина.Спасибо за ваше время.

Ответы [ 2 ]

0 голосов
/ 08 марта 2019

После выпуска Ionic 4 для установки Ionic Native для Ionic 3 необходимо добавить @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.

0 голосов
/ 25 февраля 2019

Проблема в том, что вы используете импорт /ngx, который предназначен для Ionic версии 4. Если вы прочитаете changelog , вы увидите эту версию 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

И удалить ngx при импорте следующим образом:import { Network } from '@ionic-native/network';

...