我在我的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 –
經過進一步分析,我覺得你的問題更適合作爲答案。謝謝。 –