2013-05-07 65 views
0

嗨,我已經建立了本地GCM應用程序的Android這是在我所有的Android設備的工作非常精細。 但是我想進一步使用這個GCM服務,就像我想把這個GCM服務與我現有的Android應用程序一樣,用於測試,我已經完成了我的GCM服務器,但由於客戶端實現,我落後於所有服務器。我一直在嘗試獲取有關我的項目的相關信息,但我無法在現有的Android應用程序中找到客戶端實施資源。如果任何人能夠提供給我任何鏈接,我將非常感激。 在此先感謝添加GCM推送服務通知到現有的Android應用程序

這裏是GCM

<?php 

class GCM { 

    //put your code here 
    // constructor 
    function __construct() { 

    } 

    /** 
    * Sending Push Notification 
    */ 
    public function send_notification($registatoin_ids, $message) { 
     // include config 
     include_once './config.php'; 

     // Set POST variables 
     $url = 'https://android.googleapis.com/gcm/send'; 

     $fields = array(
      'registration_ids' => $registatoin_ids, 
      'data' => $message, 
     ); 

     $headers = array(
      'Authorization: key=' . GOOGLE_API_KEY, 
      'Content-Type: application/json' 
     ); 
     // Open connection 
     $ch = curl_init(); 

     // Set the url, number of POST vars, POST data 
     curl_setopt($ch, CURLOPT_URL, $url); 

     curl_setopt($ch, CURLOPT_POST, true); 
     curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

     // Disabling SSL Certificate support temporarly 
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

     curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields)); 

     // Execute post 
     $result = curl_exec($ch); 
     if ($result === FALSE) { 
      die('Curl failed: ' . curl_error($ch)); 
     } 

     // Close connection 
     curl_close($ch); 
     echo $result; 
    } 

} 

?> 

回答

1

我的我的服務器端代碼,你已經與PhoneGap的標記這一點,但你真的不說,如果這是一個正常的Android應用程序或別的東西, ?如果它是一個標準的Android應用程序,那麼確實有一個simple step-by-step tutorial on the official Android developer site

如果這是一個PhoneGap的應用程序有一堆對因此與GCM問題。做一個搜索,看看他們有沒有幫助你開始。

UPDATE:好了,因爲這是一個PhoneGap的應用程序我不得不尋找一些東西。我非常瞭解GCM如何在Android應用程序中工作,並且它看起來像您在PhoneGap應用程序中必須執行的一系列事件。你提到你遵循Mark Nutter的例子。我假定你的意思是你使用GitHub project

如果是這樣的話,對你感興趣的是GCMIntentService。這是負責處理GCM註冊和GCM消息的代碼片段。在GCMIntentService中有一個onRegistered()方法,當應用程序用GCM成功註冊時(我不確定註冊是自動完成還是必須自己調用它),會調用該方法。無論如何,你會得到一個註冊ID,這是你需要發送到你自己的服務器的ID。如果你看看line #39,你可以看到插件發送一個JSON對象回到你的PhoneGap應用。 JSON看起來像這樣:

{ 
    "event":"registered", 
    "regid":"a very long registration id that you should send to your server" 
} 

在Javascript端處理這個JSON回調,你應該很好走!

+0

基本上是我在做使用PhoneGap的corodova 2.2.0什麼都沒發生的那一刻到現在我都跟着馬克·納特的,包括在我的應用程序的GCM插件的方法,但是,這並不爲我工作的Android應用項目。我已經在php中完成了服務器端GCM。但我面臨的主要困難是在客戶端,GCM的集成似乎並不適用我已包含的項目ID。但是,我必須把服務器放在那裏,似乎沒有我必須把我的服務器的URL。 – 2013-05-15 07:24:13

+0

啊,我明白了。我已經更新了我的答案 – britzl 2013-05-16 10:13:22

+0

非常感謝你 – 2013-05-20 19:53:18

0

基本上是我在做使用PhoneGap的corodova 2.2.0什麼都沒發生的那一刻到現在我都跟着馬克·納特的,包括在我的應用程序的GCM插件的方法,但是,這並不爲我工作的Android應用項目。 我已經在php中完成了服務器端GCM。 但我面臨的主要困難是在客戶端GCM的集成似乎不能正常工作我已包括的項目ID。但是,我必須把服務器放在那裏,似乎沒有我必須把我的服務器的URL。