Я следую этот урок понять систему GCM. У меня есть вопрос относительно этой части:
Можно отправлять сообщения каждому зарегистрированному пользователю, но как изменить этот код, чтобы я мог отправить одно сообщение ВСЕМ зарегистрированным устройствам?
Я уже искал ответы:
отправка push-уведомлений на несколько устройств Android с помощью GCM
а также
Отправка push-уведомлений на несколько устройств
(почти тот же вопрос) — но не смог найти ответа на мой вопрос.
<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 class="container">
<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>Name: </label> <span><?php echo $row["name"] ?></span>
<div class="clear"></div>
<label>Email:</label> <span><?php echo $row["email"] ?></span>
<div class="clear"></div>
<div class="send_container">
<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>
Я пытался изменить код, но с моим изменением он не работает ..
Я хочу поместить все regID как массив в sendPushNofiy …
<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 class="container">
<h1>No of Devices Registered: <?php echo $no_of_users; ?></h1>
<hr/>
<ul class="devices">
<?php
if ($no_of_users > 0) {
?>
<?php
<li>
$rows = array();
while(($row = mysql_fetch_array($users))) {
$rows[] = $row['id'];
}
<form id="<?php echo $rows ?>" name="" method="post" onsubmit="return sendPushNotification('<?php echo $rows ?>')">
<label>Name: </label> <span><?php echo $row["name"] ?></span>
<div class="clear"></div>
<label>Email:</label> <span><?php echo $row["email"] ?></span>
<div class="clear"></div>
<div class="send_container">
<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>
с этим я могу получить все региды в строках массива … но как я могу перенести массив в форму?
while ($row = mysql_fetch_array($users)) {
$rows[] = $row["gcm_regid"];
}
моя проблема заключается в том, как отправить мой массив «row» в send_message.php?
$ registatoin_ids = array ($ regId); << он уже обрабатывает массив, но мой ввод работает только с одним значением, я хочу передать массив ^^
РЕДАКТИРОВАТЬ:
send_message.php
if (isset($_GET["regId"]) && isset($_GET["message"])) {
$regId = $_GET["regId"];
$message = $_GET["message"];
include_once './GCM.php';
$gcm = new GCM();
$registatoin_ids = array($regId);
$message = array("price" => $message);
$result = $gcm->send_notification($registatoin_ids, $message);
echo $result;
}
?>
Вы несете ответственность за ведение списка регистрационных идентификаторов всех зарегистрированных пользователей. Нет API-вызова для отправки сообщения всем зарегистрированным пользователям. Вы можете отправить на сервер GCM запрос до 1000 регистрационных идентификаторов. Если у вас более 1000 зарегистрированных пользователей, вам придется разделить их на несколько запросов.
<?php
if (isset($_GET["message"])) {
include_once 'db_functions.php';
$db = new DB_Functions();
$users = $db->getAllUsers();
$regIds = array();
if ($users != false){
while ($row = mysqli_fetch_array($users)) {
$regIds[] = $row["gcm_regid"];
}
}
include_once './GCM.php';
$gcm = new GCM();
$registatoin_ids = $regIds;
$message = "array("price" => $_GET["message"])";
$result = $gcm->send_notification($registatoin_ids, $message);
echo $result;
}
?>