Native:尝试调用Push.hasPermission,但未安装Push插件

时间:2018-03-23 05:44:38

标签: android cordova ionic3

我正在使用离子3中的推送通知构建应用程序。我提到了不同的教程。我提到了这个链接Pushnotification

我没有任何构建问题,一切正常,但当我尝试使用物理设备时,我会在控制台上看到。

   03-22 17:56:28.062 32273 32273 I chromium: [INFO:CONSOLE(47546)] "Native: tried calling Push.hasPermission, but the Push plugin is not installed.", source: file:///android_asset/www/build/main.js (47546)
03-22 17:56:28.062 32273 32273 I chromium: [INFO:CONSOLE(47552)] "Install the Push plugin: 'ionic cordova plugin add phonegap-plugin-push'", source: file:///android_asset/www/build/main.js (47552)
03-22 17:56:28.063 32273 32273 I chromium: [INFO:CONSOLE(84647)] "Notification init start", source: file:///android_asset/www/build/main.js (84647)
03-22 17:56:28.066 32273 32273 I chromium: [INFO:CONSOLE(47546)] "Native: tried calling PushNotification.init, but the PushNotification plugin is not installed.", source: file:///android_asset/www/build/main.js (47546)
03-22 17:56:28.071 32273 32273 I chromium: [INFO:CONSOLE(84700)] "Notification init end", source: file:///android_asset/www/build/main.js (84700)
03-22 17:56:28.088 32273 32273 I chromium: [INFO:CONSOLE(1370)] "ERROR", source: file:///android_asset/www/build/main.js (1370)

我在/ ** / appName / platforms / android / platform_www / plugins中看不到push plugin文件夹。 对于其他插件,如相机,地图,地理定位等,都有文件夹。

我跑下面的命令来安装推送插件

cordova plugin add cordova-plugin-cocoapod-support --save
 npm install --save @ionic-native/push

在package.json

"phonegap-plugin-push": {
        "SENDER_ID": "senderId"
      }

在config.xml中

<plugin name="phonegap-plugin-push" spec="^2.2.2">
        <variable name="SENDER_ID" value="seberID" />
    </plugin>

已编辑

$ionic info

cli packages: (/usr/lib/node_modules)

    @ionic/cli-utils  : 1.19.2
    ionic (Ionic CLI) : 3.20.0

global packages:

    cordova (Cordova CLI) : 8.0.0

local packages:

    @ionic/app-scripts : 1.3.7
    Cordova Platforms  : android 7.0.0
    Ionic Framework    : ionic-angular 3.6.0

System:

    Android SDK Tools : 26.1.1
    Node              : v7.10.0
    npm               : 4.2.0
    OS                : Linux 4.13

Environment Variables:

    ANDROID_HOME : /home/ullas/Android/Sdk

Misc:

    backend : pro

2 个答案:

答案 0 :(得分:0)

需要检查插件的版本。

根据您的Cordova CLI,Cordova Android,Cordova iOS和Cocoapods的插件版本更新版本。

添加平台时,您会收到相同的警告,未安装的插件是什么。

检查安装要求here

答案 1 :(得分:0)

好像几天前cordova fcm插件进行了一些更改。

您只需要更改导入语句。

新导入:import { FCM } from "cordova-plugin-fcm-with-dependecy-updated/ionic/ngx";

在构造函数中:constructor(private fcm: FCM, private platform: Platform){ }

请确保在设备准备就绪后从fcm调用任何方法。

this.platform.ready().then(() => {
   this.fcm.getToken()
      .then(deviceId => {})
      .catch(err => console.error(err))
}

请参见https://github.com/andrehtissot/cordova-plugin-fcm-with-dependecy-updated#with-ionic