Angular ionic serve-运行时错误:未找到推送插件(ionic 2)

Angular ionic serve-运行时错误:未找到推送插件(ionic 2),angular,ionic2,phonegap-pushplugin,ionic-cloud,ionic-cloud-angular,Angular,Ionic2,Phonegap Pushplugin,Ionic Cloud,Ionic Cloud Angular,我在爱奥尼亚2应用程序中使用推送通知,代码如下 import { Push, PushToken } from '@ionic/cloud-angular'; @Component({...}) export MyPage { constructor(public platform: Platform, public menu: MenuController, public push: Push){ this.initializeApp(); }

我在爱奥尼亚2应用程序中使用推送通知,代码如下

import { Push, PushToken } from '@ionic/cloud-angular';
   @Component({...})
   export MyPage {     
    constructor(public platform: Platform, public menu: MenuController, public push: Push){
     this.initializeApp();
    }
    initializeApp() {
      this.platform.ready().then(() => {
       if (this.push) {
        this.push.register().then((t: PushToken) => {
          return this.push.saveToken(t);
        }).then((t: PushToken) => {
          console.log('Token saved:', t.token);
          window.localStorage.setItem("deviceToken", t.token);
        });

        this.push.rx.notification()
          .subscribe((msg) => {
            alert(msg.title + ': ' + msg.text);
            console.log('notification msg', msg);
          });
        }
      }
    }
}
当我在设备上运行时,它工作正常。但我不知道它给出了以下错误,因为构造函数中注入了Push

error_handler.js:53 TypeError: platform.toLowerCase is not a function
    at Insights.normalizeDevicePlatform (http://localhost:8100/build/main.js:70460:25)
    at Insights.markActive (http://localhost:8100/build/main.js:70450:33)
    at Insights.checkActivity (http://localhost:8100/build/main.js:70439:22)
    at http://localhost:8100/build/main.js:70415:27
    at t.invokeTask (http://localhost:8100/build/polyfills.js:3:9723)
    at Object.onInvokeTask (http://localhost:8100/build/main.js:41825:37)
    at t.invokeTask (http://localhost:8100/build/polyfills.js:3:9659)
    at e.runTask (http://localhost:8100/build/polyfills.js:3:7083)
    at invoke (http://localhost:8100/build/polyfills.js:3:10836)
    at e.args.(anonymous function) (http://localhost:8100/build/polyfills.js:2:30123)
ErrorHandler.handleError @ error_handler.js:53

欢迎提供任何帮助

在执行cordova操作之前,您应该检查cordova对象是否存在

因为浏览器不是移动设备,所以它不存在于服务器上

initializeApp() {
      this.platform.ready().then(() => {
       if(!(<any>window).cordova) return;
       ...the native code you want to execute...
      });
    }
初始化EAPP(){
this.platform.ready()。然后(()=>{
如果(!(窗口).cordova)返回;
…要执行的本机代码。。。
});
}

在执行cordova操作之前,应检查cordova对象是否存在

因为浏览器不是移动设备,所以它不存在于服务器上

initializeApp() {
      this.platform.ready().then(() => {
       if(!(<any>window).cordova) return;
       ...the native code you want to execute...
      });
    }
初始化EAPP(){
this.platform.ready()。然后(()=>{
如果(!(窗口).cordova)返回;
…要执行的本机代码。。。
});
}

检查您是否在
包.json
文件中的
依赖项中有“@ionic/cloud angular”:“^0.9.0”

如果是,请将其切换到
^0.9.1
,保存文件并在项目根文件夹中运行
npm install
。这应将
@ionic/cloud angular
更新为
0.9.1
,并将其
@ionic/cloud
依赖项更新为
0.15.1


然后运行
ionic-serve
,它应该可以工作。

检查
依赖项内
package.json
文件中是否有“^0.9.0”

如果是,请将其切换到
^0.9.1
,保存文件并在项目根文件夹中运行
npm install
。这应将
@ionic/cloud angular
更新为
0.9.1
,并将其
@ionic/cloud
依赖项更新为
0.15.1


然后运行爱奥尼亚服务,它应该可以工作。

推送插件是本机的,它只在手机(或模拟器)中工作。我知道,但它应该允许应用程序与爱奥尼亚服务一起运行,因为它使用的是爱奥尼亚云。推送插件是本机的,它只在手机(或模拟器)中工作。我知道,但它应该允许应用程序使用离子服务运行,因为它使用的是离子云。这不是我的问题。我的问题是,当我在构造函数中注入“publicpush:push”时,它在Ionicserve中给出了错误。它可以很好地与离子运行。有没有办法在构造函数之外注入服务?有,但不是注入。这是用法。读懂你的错误现在我又犯了一个错误。我已经更新了错误日志,这不是我的问题。我的问题是,当我在构造函数中注入“publicpush:push”时,它在Ionicserve中给出了错误。它可以很好地与离子运行。有没有办法在构造函数之外注入服务?有,但不是注入。这是用法。读懂你的错误现在我又犯了一个错误。我已经更新了错误日志