2013-05-07 9 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, есть множество вопросов по SO, связанных с GCM. Сделайте поиск a, если кто-нибудь из них поможет вам начать работу.

UPDATE: Хорошо, так как это приложение PhoneGap, мне пришлось искать кое-что. Я хорошо понимаю, как работает GCM в приложении для Android, и похоже, что это одна и та же последовательность событий, которые вы должны делать в приложении PhoneGap. Вы упомянули, что вы следовали примеру Марка Наттера. Я предполагаю, что вы имеете в виду, что используете GitHub project?

Если это так, то интересный бит для вас - GCMIntentService. Это часть кода, ответственного за обработку регистрации GCM и сообщений GCM. В GCMIntentService существует метод onRegistered(), который вызывается, когда приложение успешно регистрируется с помощью GCM (я не уверен, что регистрация выполняется автоматически или если вы должны ее сами вызвать). В любом случае, вы получите идентификатор регистрации, и именно этот идентификатор необходимо отправить на ваш собственный сервер. Если вы посмотрите на line #39, вы увидите, что плагин отправляет объект JSON обратно в ваше приложение PhoneGap. JSON выглядит следующим образом:

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

Handle это JSON обратного вызова на Javascript стороне, и вы должны быть хорошо идти!

+0

Да, в основном я делаю проект приложения Android с помощью phonegap corodova 2.2.0. Ничего не происходит на данный момент, пока я не следовал методу Марка Наттера с включением плагина GCM в моем приложении, но это не работает для меня. Я уже сделал серверный GCM в php. но основная трудность, с которой я сталкиваюсь, - это клиентская сторона, интеграция GCM, похоже, не работает с идентификатором проекта, который я включил. Но там, где я должен поставить сервер, кажется, нет места, где я должен разместить URL-адрес моего сервера. –

+0

А, я понимаю. Я обновил свой ответ – britzl

+0

большое вам спасибо –

0

Да, в основном, я делаю проект приложения Android с помощью phonegap corodova 2.2.0. Ничего не происходит на данный момент, пока я не следовал методу Mark Nutter с включением плагина GCM в моем приложении, но это не работает для меня. Я уже сделал serveride GCM в php. , но главная трудность, с которой я столкнулся, - это на стороне клиента интеграция GCM, похоже, не работает с идентификатором проекта, который я включил. Но там, где я должен поставить сервер, кажется, нет места, где я должен разместить URL-адрес моего сервера.

Смежные вопросы