在 DevExtreme/Phonegap 上使用 FCM 推送通知

2023-12-04

我使用 DevExtreme 开发了我的应用程序,这是一个基于 PhoneGap 的多平台工具。

现在,我尝试使用phonegap-plugin-push 管理推送通知。

我的第一个简单目标是发送接收来自 FCM(Firebase 云消息传递)的一些通知。

我更喜欢从 Android 开始,因此,我在 FCM 上设置了我的 Android 应用程序。在这里,我获取了发件人 ID。

根据文档,我修改了 config.xml,如下所示:

<widget id="com.devexpress.apptemplate" version="1.0" versionCode="1">
  <name>ApplicationTemplate</name>
  <description>Template</description>
  <preference name="phonegap-version" value="cli-6.4.0" />
  <preference name="permissions" value="none" />
  <preference name="prerendered-icon" value="true" />
  <preference name="android-windowSoftInputMode" value="adjustPan" />
  <preference name="SplashScreen" value="splash" />
  <preference name="SplashScreenDelay" value="60000" />
  <preference name="AutoHideSplashScreen" value="false" />
  <preference name="SplashShowOnlyFirstTime" value="false" />
  <preference name="FadeSplashScreen" value="false" />
  <preference name="ShowSplashScreenSpinner" value="false" />
  <preference name="DisallowOverscroll" value="true" />
  <preference name="StatusBarOverlaysWebView" value="false" />
  <preference name="StatusBarBackgroundColor" value="#000000" />
  <preference name="android-minSdkVersion" value="15" />
  <preference name="android-targetSdkVersion" value="22" />
  <!--<plugin name="cordova-plugin-file" />-->
  <plugin name="cordova-plugin-geolocation" />
  <plugin name="cordova-plugin-splashscreen" onload="true" />
  <plugin name="cordova-plugin-whitelist" />
  <plugin name="cordova-plugin-ios-longpress-fix" />
  <plugin name="cordova-plugin-statusbar" onload="true" />
  <plugin spec="https://github.com/phonegap/phonegap-plugin-push.git" source="git" >
    <param name="SENDER_ID" value="123456" />
  </plugin>
  <access origin="*" />
</widget>

然后,在 index.js 文件的 deviceReady 事件中:

  var push = PushNotification.init({
      android: {
          senderID: "123456"
      },
      browser: {
          pushServiceURL: 'https://fcm.googleapis.com/fcm/send' 
      },
      ios: {
          alert: "true",
          badge: "true",
          sound: "true"
      },
      windows: {}
  });

  push.on('registration', function (data) {
      // data.registrationId
      DevExpress.ui.notify("Device registered", "success", 3000);
  });

  push.on('notification', function (data) {
      // data.message,
      // data.title,
      // data.count,
      // data.sound,
      // data.image,
      // data.additionalData
      DevExpress.ui.notify(data.message, "info", 10000);
  });

  push.on('error', function (e) {
      // e.message
      DevExpress.ui.notify(e.message, "error", 10000);
  });

痛苦就从这里开始。

首先我不知道pushServiceURL是否正确。如果我想从 FCM 发送一些通知,这是要使用的 URL 吗?

然后,我正确创建了应用程序模板并构建了 apk。但是,当然,当我将其安装在 Android 设备上并尝试从 FCM 发送通知时,我在应用程序上没有看到任何内容。

此外,我试图在应用程序启动后使用消息来管理注册事件,但是我也没有看到该消息.

所以,这里没有任何作用!恕我直言,由于缺乏文档,你能帮助我吗?

UPDATE:根据phonegap插件推送的文档,我注意到我必须包含google-service.json。所以,我在 config.xml 中写道:

  <platform name="android">
    <resource-file src="google-services.json" target="google-services.json" />
  </platform>

我更改了index.js中的代码:

  var push = PushNotification.init({
      android: {},
      ios: {
          alert: "true",
          badge: "true",
          sound: "true"
      },
      windows: {}
  });

由于 senderID 现在位于 google-services.json 中。此外,我还在 config.xml 中删除了 senderID:

<plugin spec="https://github.com/phonegap/phonegap-plugin-push.git" source="git" />

我还在我的项目中的index.html 中包含了这个文件(https://github.com/phonegap/phonegap-plugin-push/blob/master/src/js/push.js)但不知道是否正确。


解决了。我写了这个:https://programmingistheway.wordpress.com/2017/07/19/devextremephonegap-how-to-manage-push-notifications-with-fcm/

希望能帮助到你。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 DevExtreme/Phonegap 上使用 FCM 推送通知 的相关文章

随机推荐

  • 如果 Observable 已完成,我是否需要取消订阅 Observable?

    假设我有一个Observable 热门 未完成 我订阅了它 通常当我完成时Subscription我必须取消订阅它以防止内存泄漏 let subject new Subject const sub subject subscribe Nee
  • 如何将 ObservableCollection 绑定到 WPF 中的复选框列表框

    让我先声明一下我对 C 和 WPF 都很陌生 我正在尝试连接一个集合Boolean值到包含 6 个复选框的容器 并在按下按钮时存储这些值的状态 我假设有一种简单的方法可以做到这一点 因为将复选框绑定到集合似乎是一件非常自然的事情 但到目前为
  • XSLT 将字段连接在一起

    我正在尝试过滤特定字段并连接另一个字段 Input
  • 如何使用Pivot_longer将宽类型数据重塑为具有多个变量的长类型数据

    我想问如何将以下数据框从宽类型重塑为长类型 宽类型数据如下 重塑前的宽类型数据 long 类型数据 即我想要获取的数据帧 如下所示 整形后的Long类型数据 如果您能给我使用更长的枢轴来完成此操作的提示 我将非常感激 我可以通过 BLS 和
  • 图表的中心

    给定一棵无向树 其无权边具有 N 个顶点和 N 1 个边 并且数量为 K 找到 K 个节点 以便树中的每个节点与 K 个节点中的至少一个节点的距离在 S 范围内 另外 S 必须是尽可能小的 S 因此 如果 S 我尝试解决这个问题 但是 我觉
  • 在现有 Java 7 代码中使用 Java 8 可选

    我有一项作业 需要将以下 Java 8 之前的代码转换为 Java 8 代码 以下只是一种让我很难完成的方法 public static List
  • 嵌套 mysql 查询的性能损失

    什么是性能损失SELECT FROM Table VS SELECT FROM SELECT FROM Table AS A AS B 我的问题是 首先 SELECT 是否涉及表中行的迭代 或者它只是将所有行作为一个块返回而不进行任何迭代
  • C 中是否有类似于 Java 字符串 'charAt()' 方法?

    我正在尝试将一段代码从 Java 转换为 C 但我被困在这里 试图在每个位置获取一个字符 char ch line while pos lt line length ch line charAt pos C 中有没有类似的东西可以转换行ch
  • django xlsxwriter 中的日期时间问题

    我正在尝试在 django 视图中创建导出到 Excel 的功能 如下所示 def export myreport request sd ed from xlsxwriter workbook import Workbook import
  • 使用 Google Maps API 根据地址显示房屋的街景

    我正在尝试使用 Google 地图根据地址显示房屋的街景 我创建了一个jsfiddle基于此tutorial 小提琴正在显示默认的初始地址 但我不知道按下按钮时如何将新地址传递到街景代码中 这是 HTML h3 Enter an Addre
  • jQuery ajax 安全性

    我有以下 ajax 调用 它检查用户是否是付费会员 如果是 则相应地运行某些功能 这可行 但我担心安全性 如果有人在控制台强制中更改此 ajax 代码怎么办 button无需执行任何操作即可成功运行功能 我可以在仍然使用 jQuery aj
  • 根据 Symfony 中的另一个字段值验证一个字段

    我在 Symfony 表单中有两个相关字段 object status and cryopreservation method 第一个不能为空 并存储三个可能的选择之一 liquid solid or cryopreserved 仅当记录有
  • 为什么调试模式和运行模式下的保留计数不同?

    我知道 ARC 和 MRC 是如何工作的 但我在测试下面的代码时感到困惑 我不知道为什么会发生这种情况 为什么同一个问题在调试模式和运行模式下的保留计数不同 NSMutableArray a NSMutableArray array a a
  • 让画布无限大

    我目前正在使用画布 在上面画了一些感兴趣的区域 它们由正方形组成 可以通过鼠标单击来移动 即 每次我在画布上单击时 所选区域将以我的光标位置为中心 我当前的问题是我想添加以下功能 当我单击画布边缘附近 左或右 时 如果正方形的一部分不在画布
  • 将新行添加到数据表

    我有一个DataGrid绑定到具有一张表和一列 FooTable 和 FooName 的数据库 使用以下代码 我可以绑定DataGrid to DataTable并显示数据库数据 但是当我每次添加新行时DataSet Add Click 没
  • JAXB - 具有递归依赖性的编组

    有人尝试用递归引用封送 JAXB 对象吗 我有以下课程 public class A private Long id private String name private List a aList 我想将其编组为 a a a a a a
  • 列表视图行布局的动态变化也会影响其他行

    我正在使用 ListView 每个列表元素上都有几个按钮 当单击一行上的按钮时 该按钮应该消失 单击时单击的按钮消失 没关系 问题是其他一些列表元素按钮也消失了 例如 当我单击第一个元素按钮时 它也会影响第 6 11 16 个元素中的按钮
  • 将文本添加到点阵条形图中的面板

    我尝试向具有多个面板的格子条形图中的条形添加标签 我最终得到了太多的标签 每个标签都在每个面板中 这是我的代码 library lattice data iris barchart seq 1 50 Petal Width Petal Le
  • 也可以将 swift println 日志写入文件吗?

    将日志写入文本文件也是一种简单的方法吗 我需要一个崩溃日志来分析何时出现问题 但我已经在代码中使用了 println al Use String writeToFile lt path String gt atomically lt Boo
  • 在 DevExtreme/Phonegap 上使用 FCM 推送通知

    我使用 DevExtreme 开发了我的应用程序 这是一个基于 PhoneGap 的多平台工具 现在 我尝试使用phonegap plugin push 管理推送通知 我的第一个简单目标是发送接收来自 FCM Firebase 云消息传递