Android上使用Firebase Cloud的Adobe Phonegap推送通知

问题描述 投票:0回答:1

自2018年以来,标准的Phonegap推送通知示例项目不再有效。我正在努力寻找一种向用户发送推送通知的功能方法。到目前为止,我已经做了以下事情:

  1. 设置Adobe Phonegap推送通知示例项目
  2. 设置Firebase Cloud帐户并创建项目并向其添加Android应用程序。
  3. 下载了google-services.json
  4. 已安装的phonegap-plugin-push(1.8.0显然超过2.0有问题),并包含我的发件人ID
  5. 安装了cordova-android-support-gradle-release,cordova-android-play-services-gradle-release和cordova-android-firebase-gradle-release
  6. 修改了index.js,以便不再在PushNotification.init Android对象中发送发件人ID(显然不再需要)
  7. 修改了index.js,以便pushServiceURL包含在PushNotification.init Browser对象中(显然这是在浏览器中测试所需的)
  8. 在Firebase云中设置并发布推送消息活动,以在应用程序打开时触发

我使用的是Android 8.1.0。我已经安装了Adobe Phonegap Developer App

结果:我在CLI中运行Phonegap服务。我在CLI中看到以下内容:

Updating manifest.json with push properties…
[phonegap] starting app server...
[phonegap] listening on 192.168.1.57:3000
[phonegap]
[phonegap] ctrl-c to stop the server
[phonegap]
Updating manifest.json with push properties…
Manifest updated with push sender ID
Manifest updated with push sender ID
[phonegap] 200 /socket.io/?EIO=3&transport=polling&t=MbsZP-M
[phonegap] 200 /socket.io/? 
EIO=3&transport=polling&t=MbsZSMw&sid=Wyc9htsKdIkXHCtKAAAA
[phonegap] 200 /__api__/update
[phonegap] 200 /__api__/update
[phonegap] 200 /__api__/update
[phonegap] 200 /socket.io/socket.io.js

......到目前为止一切看起来都不错我在Android设备上加载Phonegap开发者应用程序并连接,我看到:

[phonegap] [console.warn] Content Security Policy has been modified to be: 
<meta http-equiv="Content-Security-Policy" content="default-src * 'unsafe-inline' gap: ws: https://ssl.gstatic.com;style-src 'self' 'unsafe-inline' data: blob:;media-src *;img-src * 'self' data: content:;script-src * 'unsafe-inline' 'unsafe-eval' data: blob:;">
[phonegap] [console.warn] Content Security Policy has been added: <meta http-equiv="Content-Security-Policy" content="default-src * gap: ws: https://ssl.gstatic.com;img-src * 'self' data: content:;style-src 'self' 'unsafe-inline' data: blob:;script-src * 'unsafe-inline' 'unsafe-eval' data: blob:;">
[phonegap] 200 /__api__/appzip
[phonegap] 200 /socket.io/socket.io.js
[phonegap] 200 /socket.io/?EIO=3&transport=polling&t=MbsaRlk
[phonegap] 200 /socket.io/?EIO=3&transport=polling&t=MbsaRmS&sid=R8RzNxpm8Z-XkKNtAAAD
[phonegap] [console.log] Received Device Ready Event
[phonegap] [console.log] calling setup push
[phonegap] [console.log] calling push init
[phonegap] [console.log] after init
[phonegap] [console.log] Device Push ID:
[phonegap] dijoTzuKUVd:APA91dERSwx0ZeKAg2nqeOCTJnXkeuBqQQQrJgGi4c0m5I_G30IjF6IiHex8Muazj-QlNVmemqPf0dQQgvF0u5eJPMQ-VTTagpGVnQvgqZUEUSlzKnAabrw4kz0W45RnrsbJNKAbFZbh
[phonegap] [console.log] registration event: dijoTzuKUVd:APA91dERSwx0ZeKAg2nqeOCTJnXkeuBqQQQrJgGi4c0m5I_G30IjF6IiHex8Muazj-QlNVmemqPf0dQQgvF0u5eJPMQ-VTTagpGVnQvgqZUEUSlzKnAabrw4kz0W45RnrsbJNKAbFZbh

......再次,一切看起来都不错,屏幕上的消息显示“已注册”。所以一切似乎都没问题,除非收到任何消息。没有控制台日志通知我任何消息尝试。

我还尝试使用Firebase实例ID添加测试设备。从我的代码我假设“dijoTzuKUVd:APA91dERSwx0ZeKAg2nqeOCTJnXkeuQqQQQrJgGi4c0m5I_G30IjF6IiHex8Muazj-QlNVmemqPf0dQQgvF0u5eJPMQ-VTTagpGVnQvgqZUEUSlzKnAabrw4kz0W45RnrsbJNKAbFZbh”是测试设备?所以我补充说,但Firebase说这是一种“无效的格式”。然后我尝试了Firebase接受的冒号(“dijoTzuKUVd”)之前的代码(但不知道是否正确)并尝试再次发送消息。但仍然没有。

有人知道我错过了什么吗?

此外,当我在任何浏览器中运行应用程序时,我收到JS错误:

Uncaught Error: Service Workers are not supported on your browser.
at new PushNotification (push.js:89)
at Object.init (push.js:366)
at Object.setupPush (index.js:42)
at Channel.onDeviceReady (index.js:38)
at Channel.fire (cordova.js:798)
at cordova.js:229

...所以我无法在浏览器上测试它。

任何帮助赞赏。

android push-notification firebase-cloud-messaging phonegap
1个回答
0
投票

如果我的回答看似愚蠢而有疑问,请原谅我...

手机的ID不是

dijoTzuKUVd

dijoTzuKUVd:APA91dERSwx0ZeKAg2nqeOCTJnXkeuBqQQQrJgGi4c0m5I_G30IjF6IiHex8Muazj-QlNVmemqPf0dQgvF0u5eJPMQ-VTTagpGGVnQvgqZUEUSlzKnAabrw4kz0W45RnrsbJNKAbFZbh

对于此ID,您的通知服务必须通过FCM发送通知。

我不知道你如何发送通知,但知道在我开发这些通知期间,当我从Firebase界面发送通知时,我收到了非收据问题。

从C#服务发送时,相同的接收代码有效

© www.soinside.com 2019 - 2024. All rights reserved.