当前位置: 首页 > 知识库问答 >
问题:

Android消息推送GCM

戚均
2023-03-14

我正在开发android GCM,以便我的应用程序向用户发送推送通知。我正在学习这个教程

http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/

但是在本教程中,它表明我们可以向单个设备发送推送通知。但我想一次向所有用户发送推送通知。那么我该如何实现这种技术呢?

共有3个答案

楚德辉
2023-03-14

是的,您可以使用GCM发送,因为它也允许多播Messagin服务。

用下面的合成:

{
  "registration_ids" : ["APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx..."],
  "data" : {
    ...
  },
}

这里,key registration_ids的值应如下:

一个字符串数组,包含接收消息的设备(注册id)列表。它必须包含至少1个最多1000个注册id。要发送多播消息,必须使用JSON。对于向单个设备发送单个消息,可以使用只有一个注册id的JSON对象,或者纯文本(见下文)。必需的。

希望对你有帮助。

申奇希
2023-03-14

你也可以采用集成了推送模块的“后端即服务”。因此您可以从后端通知所有参与者。我用了一段时间“apiomat ”,很满意

尤祖鹤
2023-03-14

我已经遇到了同样的问题并解决了它。要一次向所有用户发送消息推送,您必须执行您提到的教程中列出的所有操作。但是您必须更改两个文件:index.phpsend_message.php

>

  • 在<code>index.php<code>中:

    一个。将脚本代码替换为以下内容:

    $(document).ready(function(){
    
    });
    function sendToAll(){
        var data = $("#sendtoall").serialize();
        $("#sendtoall").unbind('submit');               
        $.ajax({
            url: "send_message.php",
            type: 'GET',
            data: data,
            beforeSend: function() {
    
            },
            success: function(data, textStatus, xhr) {
                  $('.txt_message').val("");
            },
            error: function(xhr, textStatus, errorThrown) {
    
            }
        });
        return false;
    }
    

    b、 将body标签内的代码替换为以下代码(跳过前五行):

    <div class="container">
        <h1>No of Devices Registered: <?php echo $no_of_users; ?></h1>
        <hr/>
        <ul class="devices">
            <?php
            if ($no_of_users > 0) {
                ?>
                <li>
                    <form id="sendtoall" name="" method="post" onsubmit="return sendToAll()">
                        <div class="send_container">                               
                            <textarea rows="3" name="message" cols="25" class="txt_message" placeholder="Type message here"></textarea>
                            <?php
                            while ($row = mysql_fetch_array($users)) {
                            ?>
                            <input type="hidden" name="regId[]" value="<?php echo $row["gcm_regid"]; ?>"/>
                            <?php
                            }
                            ?>
                            <input type="submit" class="send_btn" value="Send To All" onclick=""/>
                        </div>
                    </form>
                </li>
                <?php
            } else { ?>
                <li>
                    No Users Registered Yet!
                </li>
            <?php } ?>
        </ul>
    </div>
    <div class="clear"></div>
    

    在send_message.php

    更换管路:

    $registatoin_ids = array($regId);
    

    $registatoin_ids = $regId; 
    

  •  类似资料:
    • 消息推送 PDF版下载 如流开放了消息发送接口,企业可以使用这些接口让企业应用与用户间进行双向通信。 推送消息 向成员推送消息 请求方式:POST(HTTPS) 请求地址:https://api.im.baidu.com/api/message/send?access_token=ACCESS_TOKEN 请求body:(每种类型的消息请求body不同,详见消息推送格式) 参数说明: 参数 类型

    • 1、离线消息 接口说明: 接口类型:回调型接口 接口作用:智齿将客服发送给用户的离线消息推送至企业预先配置好的回调地址上。 请求方法: POST 请求格式: { "type": 202, //消息类型,表示客服发送消息给客户 "partnerId": "", //企业自己的用户id "msgId": "" ,//消息id "content": "" ,//客

    • 用户画像+平台提供了一个全新的功能:消息推送(目前支持为小米手机用户推送消息)。用户可以根据需要创建客群,待客群生成后,点击客群右侧的“推送消息”按钮,即可设置消息推送任务。 推送消息前,需要在小米开放平台接入小米推送服务和获得应用信息(App ID,App Key,App Secret等)。小米推送服务具体请参考:https://dev.mi.com/console/appservice/pus

    • 如果一个主题订阅者在向该主题/订阅者发送推送通知时没有在线,那么他/她的消息会丢失还是当他们在线时才收到消息?

    • 我正在网上阅读苹果的文档 处理本地和远程通知 在我看来,它有相互矛盾的说法。有人能澄清这些困惑吗?现在让我们严格地说一下远程通知(与本地通知相比)。 文档称,如果按下通知上的操作按钮,它将调用application:didfishlaunchingwithoptions并传递通知负载。之后,它会说,如果应用程序在前台运行,它会通过应用程序:DidReceiveMemoteNotify:发送通知。这