使用 Firebase 云消息传递的 Ionic Native Push 崩溃

Posted

技术标签:

【中文标题】使用 Firebase 云消息传递的 Ionic Native Push 崩溃【英文标题】:Ionic Native Push Crashes using Firebase Cloud Messaging 【发布时间】:2016-10-31 15:21:33 【问题描述】:

我正在使用 Ionic2 并正在构建一个带有推送消息的聊天应用程序。我正在使用 FCM(Firebase 云消息传递)。我关注了使用phonegap-plugin-push 插件的following tutorial,一切正常。

然后我的电脑崩溃了,我不得不重新安装我所有的 Cordova 插件。从那时起,推送通知导致应用程序崩溃。当我尝试初始化 Push 并调用以下代码时:

import  StatusBar, Push, SQLite  from 'ionic-native';
                    ...

            let push = Push.init(
              android: 
                senderID: "XXXXXXXXXXXXXX",
                topics: topics
              ,
              ios: 
                alert: "true",
                badge: false,
                sound: "true",
                topics: topics
              ,
              windows: 
            );

我收到以下错误,日志中没有任何内容:

如果我不使用推送,它可以正常工作,但我显然想使用推送通知。

如果有人有任何建议,我将不胜感激。

我尝试了以下方法但没有成功:

    重新安装所有 Cordova 插件 创建了一个新的 FCM 项目并使用了它的 SENDER_ID 删除和添加安卓平台 (ionic platform remove android & ionic platform add android) 尝试重新安装 Ionic Native (npm install ionic-native --save)

更多信息:

E:\Development\IDE\ionic-apps\theWhoZoo>cordova plugin list
cordova-plugin-camera 2.2.0 "Camera"
cordova-plugin-compat 1.0.0 "Compat"
cordova-plugin-console 1.0.3 "Console"
cordova-plugin-crop 0.1.0 "CropPlugin"
cordova-plugin-device 1.1.2 "Device"
cordova-plugin-geolocation 2.2.0 "Geolocation"
cordova-plugin-network-information 1.3.0 "Network Information"
cordova-plugin-splashscreen 3.2.2 "Splashscreen"
cordova-plugin-statusbar 2.1.3 "StatusBar"
cordova-plugin-whitelist 1.2.2 "Whitelist"
cordova-sqlite-plugin 3.0.0 "Cordova SQLite Plugin"
cordova-sqlite-storage 1.4.8 "Cordova sqlite storage plugin"
ionic-plugin-keyboard 2.2.1 "Keyboard"
phonegap-plugin-push 1.8.3 "PushPlugin"
plugin.google.maps 1.3.9 "phonegap-googlemaps-plugin"

npm install 给了我以下信息:

....

npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.

> node-sass@3.10.1 postinstall E:\Development\IDE\ionic-apps\theWhoZoo\node_modules\ionic-gulp-sass-build\node_modules\gulp-sass\node_modules\node-sass
> node scripts/build.js

"E:\Development\IDE\ionic-apps\theWhoZoo\node_modules\ionic-gulp-sass-build\node_modules\gulp-sass\node_modules\node-sass\vendor\win32-x64-48\binding.node" exists.
 testing binary.
Binary is fine; exiting.
npm ERR! Windows_NT 10.0.14393
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\Richard\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js" "install"
npm ERR! node v6.2.2
npm ERR! npm  v2.15.11
npm ERR! code EPEERINVALID

npm ERR! peerinvalid The package @angular/compiler@2.1.2 does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer @angular/forms@0.2.0 wants @angular/compiler@^2.0.0-rc.4
npm ERR! peerinvalid Peer @angular/platform-browser-dynamic@2.1.2 wants @angular/compiler@2.1.2
npm ERR! peerinvalid Peer ionic-angular@2.0.0-rc.1 wants @angular/compiler@^2.0.0
npm ERR! peerinvalid Peer @angular/platform-server@2.1.2 wants @angular/compiler@2.1.2
npm ERR! peerinvalid Peer @angular/compiler-cli@0.6.4 wants @angular/compiler@2.0.2

npm ERR! Please include the following file with any support request:
npm ERR!     E:\Development\IDE\ionic-apps\theWhoZoo\npm-debug.log

【问题讨论】:

【参考方案1】:

试试这个方法:

    使用“phonegap-plugin-push 1.8.4” 不要使用原生“import StatusBar, Push, SQLite from 'ionic-native';” 尝试使用 import Push, PushToken from '@ionic/cloud-angular'; (youpage.ts)

    从 '@ionic/cloud-angular' 导入 CloudSettings, CloudModule ; (app.module.ts)

     const cloudSettings: CloudSettings =  'core': 
                'app_id': 'xxx'
              ,
              'push': 
                'sender_id': 'yyy',
                'pluginConfig': 
                  'ios': 
                    'badge': true,
                    'sound': true
                  ,
                  'android': 
                    'iconColor': '#ff0000'
                  
                
              
            ;
    

它对我有用。

【讨论】:

以上是关于使用 Firebase 云消息传递的 Ionic Native Push 崩溃的主要内容,如果未能解决你的问题,请参考以下文章

IOS Firebase 云消息传递“InvalidApnsCredential”

使用 ionic 和 firebase 云消息点击通知后打开页面

Firebase 云消息与 Ionic 应用程序

Firebase 云消息传递重复通知

如何使用 Nuxt.js 实现 Firebase 云消息传递 (FCM)

使用 Flutter 测试 Firebase 云消息传递