【问题标题】:How do I utilize the Parse push plugin in an Ionic 2 app?如何在 Ionic 2 应用程序中使用 Parse 推送插件?
【发布时间】:2017-04-29 07:46:55
【问题描述】:

我正在尝试将 Parse 推送插件与我的 Ionic 2 应用程序一起使用:https://github.com/taivo/parse-push-plugin

下载后,它表示可以在我的代码中的任何地方使用 ParsePushPlugin 命名空间。当我尝试在不导入的情况下使用它时会引发错误:

找不到名称“ParsePushPlugin”。

在终端中执行以下任一操作时:

cordova plugin add https://github.com/taivo/parse-push-plugin

ionic plugin add https://github.com/taivo/parse-push-plugin

结果存放在我的“插件”目录中。这不是 Ionic Native 的一部分,所以我不能只从 Ionic Native 导入。我还尝试使用 ParsePushPlugin 名称空间从插件目录中导入它,无论是否带有大括号,但这也不起作用。我哪里错了?

更新 我根据查询更新了我的 package.json,并且截至此 package.json 以及完全重新启动应用程序仍然说没有定义cordova。

{
  "name": "ionic-hello-world",
  "author": "Ionic Framework",
  "homepage": "http://ionicframework.com/",
  "private": true,
  "scripts": {
    "ionic:build": "ionic-app-scripts build",
    "ionic:serve": "ionic-app-scripts serve"
  },
  "dependencies": {
    "@angular/common": "2.1.1",
    "@angular/compiler": "2.1.1",
    "@angular/compiler-cli": "2.1.1",
    "@angular/core": "2.1.1",
    "@angular/forms": "2.1.1",
    "@angular/http": "2.1.1",
    "@angular/platform-browser": "2.1.1",
    "@angular/platform-browser-dynamic": "2.1.1",
    "@angular/platform-server": "2.1.1",
    "@ionic/storage": "1.1.6",
    "@types/parse": "^1.2.32",
    "ionic-angular": "2.0.0-rc.3",
    "ionic-native": "2.2.3",
    "ionicons": "3.0.0",
    "rxjs": "5.0.0-beta.12",
    "underscore": "^1.8.3",
    "moment": "2.10.3",
    "sweetalert": "1.1.3",
    "zone.js": "0.6.26"
  },
  "devDependencies": {
    "@ionic/app-scripts": "0.0.45",
    "typescript": "2.0.6"
  },
  "cordovaPlugins": [
    "cordova-plugin-device",
    "cordova-plugin-console",
    "cordova-plugin-whitelist",
    "cordova-plugin-splashscreen",
    "cordova-plugin-statusbar",
    "ionic-plugin-keyboard",
    "cordova-plugin-facebook4",
    "cordova-plugin-nativestorage",
    "parse-push-plugin"
  ],
  "cordovaPlatforms": [
    "ios",
    {
      "platform": "ios",
      "version": "",
      "locator": "ios"
    }
  ],
  "description": "CPM: An Ionic project"
}

【问题讨论】:

    标签: parse-platform plugins ionic2


    【解决方案1】:

    设置

    declare var cordova:any;
    

    并像这样使用:

    platform.ready().then(
        () => {
            console.log("MyApp::constructor platform.ready");
            cordova.plugins.ParsePushPlugin.// settings and methods.
        }
    );
    

    查看this answer

    注意:Cordova 插件不适用于 ionic serve,因为它们没有加载到浏览器中。您需要在手机中进行测试。

    【讨论】:

    • 看来我很快就和我谈过了。我收到“cordova 未定义”错误。它仅在 platform.ready() 中有效还是我可以在应用程序的任何地方使用它?我在我想使用 Parse.PushPlugin 的 typescript 文件中声明了cordova,这不是我在其中执行 platform.ready() 的 app.component.ts 文件。
    • 你能展示你的package.json吗..它应该能够在任何文件中工作..在导入之后声明是全局的。
    • 你在哪里测试?
    • 我正在本地机器上测试它。是否必须在手机/模拟器上进行测试?
    • 我终于让它在 Android 模拟器上运行,它说 ParsePushPlugin 是未定义的,或者特别是它无法读取未定义的属性订阅 where cordova.plugins.ParsePushPlugin.subscribe({}) 并声明 var科尔多瓦:任何;已设置。
    【解决方案2】:

    100% 清楚。为了使用带有 Ionic2/Angular2 的 Taivo Parse Push 插件库:

    1) 从 github 下载库。 git clone https://github.com/taivo/parse-push-plugin

    2) 您不会像从 ionic/native 或 node_module 库中那样导入此库。在您想使用它的任何组件中,只需在给定 ts 文件中的导入下方执行此操作:

    declare var ParsePushPlugin: any;
    

    您可以从这里开始,ParsePushPlugin 具有文档中概述的所有功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多