自2018年以来,标准的Phonegap推送通知示例项目不再有效。我正在努力寻找一种向用户发送推送通知的功能方法。到目前为止,我已经做了以下事情:
我使用的是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
...所以我无法在浏览器上测试它。
任何帮助赞赏。
如果我的回答看似愚蠢而有疑问,请原谅我...
手机的ID不是
dijoTzuKUVd
但
dijoTzuKUVd:APA91dERSwx0ZeKAg2nqeOCTJnXkeuBqQQQrJgGi4c0m5I_G30IjF6IiHex8Muazj-QlNVmemqPf0dQgvF0u5eJPMQ-VTTagpGGVnQvgqZUEUSlzKnAabrw4kz0W45RnrsbJNKAbFZbh
对于此ID,您的通知服务必须通过FCM发送通知。
我不知道你如何发送通知,但知道在我开发这些通知期间,当我从Firebase界面发送通知时,我收到了非收据问题。
从C#服务发送时,相同的接收代码有效