【问题标题】:Native: tried calling Push.hasPermission, but the Push plugin is not installedNative:尝试调用Push.hasPermission,但是没有安装Push插件
【发布时间】:2018-03-23 05:44:37
【问题描述】:

我正在 ionic 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 中看到推送插件文件夹。 对于相机、地图、地理位置等其他插件,有文件夹。

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

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

【问题讨论】:

  • 请为您的项目提供离子信息。
  • @paril 已编辑问题

标签: android cordova ionic3


【解决方案1】:

需要检查插件的版本。

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

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

检查安装要求here

【讨论】:

  • 谢谢@paril 我以前检查过这个,我使用的插件版本是2.2.2,没有关于这个版本的信息。
  • 您将在添加平台时获得确切原因,为什么您的插件无法安装。
  • 我收到警告 ├── UNMET PEER DEPENDENCY @angular/common@4.4.6 ├── UNMET PEER DEPENDENCY @angular/compiler@4.4.6 ├── UNMET PEER DEPENDENCY @angular/compiler- cli@4.4.6 ├── 未满足的对等依赖@angular/core@4.4.6 ├── 未满足的对等依赖@angular/forms@4.4.6 ├── 未满足的对等依赖@angular/http@4.4.6 ├──未满足的对等依赖 @angular/platform-b​​rowser@4.4.6 ├── 未满足的对等依赖 @ionic-native/core@3.12.1 └── @ionic-native/push@4.6.0 npm WARN @ionic-native/push @4.6.0 需要 @ionic-native/core@^4.2.0 的对等体,但没有安装
  • 删除平台并再次为插件添加它时,您会得到什么确切的日志/评论?
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-16
    • 2017-10-28
    • 1970-01-01
    • 2018-06-03
    • 2016-01-20
    • 1970-01-01
    • 2018-04-24
    • 1970-01-01
    相关资源
    最近更新 更多