【问题标题】:How to send notifications with a phone / Cordova mobile app如何使用手机/Cordova 移动应用程序发送通知
【发布时间】:2017-09-19 13:55:52
【问题描述】:

我是 Cordova 和 JS 方面的新手,目前正在制作 Cordova 移动应用程序。目的是在firebase的帮助下发送通知(我现在专注于android)。

通知必须通过手机发送到另一部手机。

我使用 JQuery Mobile 1.4.5、JQuery 2.1.0 和 Cordova CLI 6.1.1

我的项目是 Visual Studio 项目(技术限制)

我正在使用这个 Cordova FCM 插件:https://github.com/ostownsville/cordova-plugin-fcm


我接收通知的代码运行良好:没有错误,成功生成令牌,收到通知! (firebase 控制台发送的通知,带有令牌等)。

==> 我的问题是我不知道如何继续向其他手机发送通知!

我已经有一个有效负载示例,可用于发送通知。但我不知道如何使用它。我确定我必须把它放在 firebase 的某个地方,但我不知道在哪里。

另外,我不知道如何获取要发送通知的手机令牌。是否可以知道接收者令牌?

这是我的有效载荷代码:

 var fcm_server_key = "aiz******************************";

    method: "post",
    datatype: 'json',
    headers: { 'content-type': 'application/json', 'authorization': 'key=' + fcm_server_key },
    url: "https://fcm.googleapis.com/fcm/send",
    data: json.stringify(
        {
            "notification": {
                "title": "title ",  //any value
                "body": "body ",  //any value
                "sound": "default", //if you want notification sound
                "click_action": "fcm_plugin_activity",  //must be present for android
                "icon": "fcm_push_icon"  //white icon android resource
            },
            "data": {
                "param1": "value1",  //any data to be retrieved in the notification callback
                "param2": "value2"
            },
            "to": "<USER_TOKEN>", //topic or device ==> maybe the place to put the token !?
            "priority": "high", //if not set, notification won't be delivered on completely closed ios app
            "restricted_package_name": "" //optional. set for application filtering
        }
      )

==> 是否可以通过手机将通知发送到另一部带有 firebase 的手机?那怎么办:)?

最后,我使用 Cordova Contact 插件列出手机中的所有联系人。有没有其他方法可以向用户显示他的联系人,然后将通知发送给合适的人?


非常感谢您的帮助。我已经检查了 stackoverflow 论坛和插件问题部分以解决该问题,但我还没有找到解决方案。

(抱歉英语不好,这是我的第一篇文章......)

【问题讨论】:

    标签: android jquery visual-studio cordova firebase


    【解决方案1】:

    要回答您的问题,还有更多级别

    我的问题是我不知道如何继续发送 通知到另一部手机!

    推送通知可以通过firebase console发送。

    是否可以知道接收者令牌?

    是的,如果您初始化 firebase 插件,您将在 FCMPlugin.getToken() 内的 javascript 函数中获得 firebase 令牌

    是否可以通过手机向另一部手机发送通知, 与火力基地?

    您只能使用 Firebase 推送数据直接从一个接收器发送到另一个接收器。但我不建议你这样做。因为在没有服务器的情况下直接在接收者之间交换数据是不安全的

    注意:

    在启动 firebase 通知之前,我想给您一个说明。 firebase 中有两种类型的有效载荷。

    1.Notification payload :这在接收通知方面有一些限制,应用程序只有在应用程序处于后台时才会收到通知。因此,如果他正在使用该应用程序,则不会向接收者显示通知。它将由您的FCMPlugin处理

    1.Data payload :如果你需要在应用程序在前台显示通知,那就去吧。但是你需要在android way的java代码中手动触发通知

    【讨论】:

    • 啊,非常感谢您的回答!但这里似乎有一个误解......我会再次解释:)。所以,我不想通过 Firebase 控制台发送通知,而是通过电话向另一部电话发送通知。当然,我必须使用 Firebase 作为服务器才能做到这一点,但我不知道如何。我已经使用 firebase 控制台来测试我的接收代码。然后,想象一下,我有电话 A 和令牌 AAA,而你有电话 B,带有令牌 BBB(由 FCM 服务器提供的令牌)。我怎么知道你的令牌是 BBB 并向你发送通知? getToken() 函数我能知道的只是我自己的令牌
    • 其实目的是这样做的:Phone A &lt;---&gt; FCM Server &lt;---&gt; Phone B顺便说一句,你的“note”部分真的很有趣:)
    • 是啊...显然您可以使用中间服务器来完成。如果是这样,您必须使用 ajax 将令牌发送到 FCMPlugin.getToken() 上的服务器,并在服务器中将其与用户 ID 一起存储。要从另一部手机发送通知,请将消息和用户 ID 发送到服务器,服务器会将用户 ID 与其令牌匹配并相应地通知您的消息
    • 好的,但我想使用 Firebase 作为我的服务器。你知道告诉firebase的方法:“嘿,做我的服务器!”。以及如何将我的令牌发送到 firebase(作为我的服务器)?在 ajax 帖子中,我必须指定我希望它去哪里......如果我将自己的消息发送到服务器,消息将被发送到我的手机,因为它是我的用户 ID,嗯?还是我误会了?
    • 嘿,它变得复杂了。这些不能在一个问题中给出。这些有很多教程。检查this answer,他提到了所有必要的链接。
    猜你喜欢
    • 2017-02-10
    • 2021-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多