我在我的android应用程序中需要实现推送通知,我已经拥有Google API密钥以及所有密钥都已启用推送通知。我需要关于发送推送通知的建议
据我所知,通知将从服务器发送,下游到应用程序。
从本质上讲什么,我要做的是,每当我的数据库得到更新,我想回报将消息发送到特定的设备,没有消息。
但我不是特别明白的是将消息下游发送到手机。这是如何完成的,我只向前发送过HTTP消息给我的服务器,并且对如何完成这件事感到困惑。有没有任何服务器应用程序可以做到这一点,如果是的话,我在找什么。
我在我的android应用程序中需要实现推送通知,我已经拥有Google API密钥以及所有密钥都已启用推送通知。我需要关于发送推送通知的建议
据我所知,通知将从服务器发送,下游到应用程序。
从本质上讲什么,我要做的是,每当我的数据库得到更新,我想回报将消息发送到特定的设备,没有消息。
但我不是特别明白的是将消息下游发送到手机。这是如何完成的,我只向前发送过HTTP消息给我的服务器,并且对如何完成这件事感到困惑。有没有任何服务器应用程序可以做到这一点,如果是的话,我在找什么。
有几种方法从服务器发送下游消息。一个正在使用PHP.You可以编写PHP脚本发送消息到GCM(实际发送通知到手机)。
这是我想出了我的应用程序:
我用卷曲
$url = 'https://android.googleapis.com/gcm/send';
$receive_id=$_POST['receiver_key'];
$message=$_POST['message'];
$registrationIDs = array($receive_id);
$fields = array(
'registration_ids' => $registrationIDs,
'data' => array("message" => $message),
);
$headers = array(
'Authorization: key=' . $api_key,
'Content-Type: application/json'
);
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
$curl_result = curl_exec($ch);
什么其实我是让应用程序触发这个PHP脚本来运行时required.This是什么称为从服务器发送下游消息。
多一点的搜索会得到你:
Push Notifications in Android using Google App Engine
它应该是你在找什么。这里是谷歌网站的链接,也提供了一些额外的见解:http://developer.android.com/google/gcm/http.html
谢谢我已经在看,只是想弄清楚是否有解决办法如果我不想设置Apache的蚂蚁。 –
既然你正在寻找一个推送通知的特定服务器的功能,我建议去一些软件,它会为你而不是写的所有代码服务器。
一个这样的软件,我所知道的是IBM MobileFirst(以前称为工作灯)......在它得到推送通知嵌入...可能有更多的服务器软件,在我的dev push server做同样的
谢谢,我看看他们。 –
看。所有你需要的只是粘贴你的谷歌API密钥和注册ID在相应的领域,并发送推送到您的客户端。你也可以看看该推送服务器on the Bitbucket
你不处理下游到手机自己的源代码。您看起来像这样的过程有几个部分。
为自己设定了GCM(听起来像你已经做了)
了该应用注册GCM该设备,并成立了处理程序接收推送消息。这通常是在应用程序启动时完成的,因此,您需要事先与设备进行通信。您通常也会希望给他们选择退出推送消息的选项。大多数事物的应用程序方面的概述here
有当数据库被更新时触发的脚本。然后,您可以通过将消息和特定设备的注册ID作为有效负载传递给GCM以发送消息。
我只是想更新这篇文章,以防万一这些信息对他人有用。所以基本上我所做的是当用户安装应用程序时,它将向谷歌注册以获得注册ID,然后将其发送到我的数据库,以备日后需要时使用。现在,当用户通过添加帖子来更新数据库或者添加评论时,它会触发一个在tomcat上运行我的web servlet的php脚本,从那里我的tomcat servlet查询我的数据库并计算出谁(注册ID)为发送消息给。
这只会在电话触发时才起作用,对吗?假设我想在没有事先沟通的情况下发送通知给特定的电话。这可以通过PHP来完成吗? –
是的,它可以完成。你必须在你的数据库中使用触发器。每当你的数据库更新时触发你的PHP脚本。通过以下谷歌搜索来了解如何使用触发器从数据库中激发PHP脚本:[link] https://www.google.co.in/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8# q = trigger + php + from + mysql –
经过进一步分析,我觉得你的问题更适合作为答案。谢谢。 –