tomolpi
Goto Top

PHP und Google Cloud Messaging

Guten Abend Leute,

ich hab hier eine Frage zum Thema GCM (Google Cloud Messaging).

Ich bin habe in meiner App das Push-System nach dieser Anleitung (http://androidsrc.net/android-push-notification-using-google-cloud-mess ..) implementiert, man kann auch senden und am Gerät kommt das an.

Jetzt ist es leider so, dass ich, wenn sich 2 Geräte registriert haben, ich in meiner Index.php jetzt 2 Textfelder habe, die jeweils einem Geräte die Nachricht senden face-confused

Also wie im Bild, ich tippe was in die obere Box, sende und das Gerät mit der oberen ID bekommt die Nachricht, aber das andere nicht.

unbenannt

Jetzt meine Frage: kann jemand von euch mir sagen, wie ich

1. es hinbekomme, dass es EIN Feld gibt, was an ALLE Geräte sendet?

2. Die Registration-IDs schön untereinander stehen?

Die index.php sieht so aus:

<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>  
        <script type="text/javascript">  
            $(document).ready(function(){
                
            });
            function sendPushNotification(id){
                var data = $('form#'+id).serialize();  
                $('form#'+id).unbind('submit');                  
                $.ajax({
                    url: "device_sendmsg.php",  
                    type: 'GET',  
                    data: data,
                    beforeSend: function() {
                         
                    },
                    success: function(data, textStatus, xhr) {
                          $('.txt_message').val("");  
                    },
                    error: function(xhr, textStatus, errorThrown) {
                         
                    }
                });
                return false;
            }
        </script>
    </head>
    <body>
        <?php
        include_once 'db_functions.php';  
        $db = new DB_Functions();
        $users = $db->getAllUsers();
        if ($users != false)
            $no_of_users = mysql_num_rows($users);
        else
            $no_of_users = 0;
        ?>
        <div >
            <h1>No of Devices Registered: <?php echo $no_of_users; ?></h1>
            <hr/>
            <ul class="devices">  
                <?php
                if ($no_of_users > 0) {
                    ?>
                    <?php
                    while ($row = mysql_fetch_array($users)) {
                        ?>
                        <li>
                            <form id="<?php echo $row["id"] ?>" name="" method="post" onsubmit="return sendPushNotification('<?php echo $row["id"] ?>')">  
                                <label>RegistrationID: </label> <span><?php echo $row["gcm_regid"] ?></span>  
                                <br><br>                              
                                <textarea rows="3" name="message" cols="25" class="txt_message" placeholder="Type message here"></textarea>  
                                <input type="hidden" name="regId" value="<?php echo $row["gcm_regid"] ?>"/>  
                                <input type="submit" class="send_btn" value="Send" onclick=""/>  
                                </div>
                            </form>
                        </li>
                    <?php }
                } else { ?> 
                    <li>
                        No Users Registered Yet!
                    </li>
                <?php } ?>
            </ul>
        </div>
    </body>
</html>


Grüsse, und Danke,

tomolpi

Content-Key: 301855

Url: https://administrator.de/contentid/301855

Printed on: April 25, 2024 at 10:04 o'clock

Member: nxclass
nxclass Apr 25, 2016 at 08:24:05 (UTC)
Goto Top
Zuerst ich kenne das nicht aber ich versuche das mal:

Die JS Funktion sendPushNotification(id) kümmert sich um das senden und erwartet als Parameter offenbar die Geräte ID.
Das Senden der nachricht triggert man über:
onsubmit="return sendPushNotification('<?php echo $row["id"] ?>')">  

Was hier also fehlt ist ein Formular welches bei onsubmit mehrmals die JS Funktion mit den jeweiligen IDs triggert. Das könnte so aussehen:
// Du musst hier mehr umbauen: zB. müssen hier die Daten aus deiner DB Tabelle in ein Array gepackt werden damit du hier einfach mehrmals darüber iterieren kannst; Einmal für die Einzelnen Formulare und dann für das zusätzliche Formular:
$onsubmit = "";  
foreach ( $users as $user ) {
    $onsubmit .= 'sendPushNotification(\''. $user['id'] .'\');';  
}
<form id="foobar" name="" method="post" onsubmit="<?php echo $onsubmit ?>">  
// rest vom Formular
.. das ist jetzt nur als Anhaltspunkt.