Текст книги "Разработка Android-приложений в деталях"
Автор книги: Тимур Машнин
Жанр: Компьютеры: прочее, Компьютеры
Возрастные ограничения: +12
сообщить о неприемлемом содержимом
Текущая страница: 20 (всего у книги 20 страниц)
Cordova + Google Cloud Messaging (GCM)
Для Cordova приложений регистрацию и получение Push уведомлений обеспечивает Cordova плагин phonegap-plugin-push (https://github.com/phonegap/phonegap-plugin-push).
В среде Intel SDK в разделе Plugin Management вкладки Projects добавим плагин phonegap-plugin-push. В разделе Bower Managed Libraries добавим библиотеку jquery.
В файл index.html добавим библиотеку jquery.
<script src=«bower_components/jquery/dist/jquery. min. js»> </script>
В файл app. js добавим код регистрации и обработки сообщений.
function onAppReady () {
if (navigator. splashscreen && navigator. splashscreen. hide) {navigator. splashscreen. hide ();
}
var push = PushNotification.init ({
android: {
senderID: «1222…»
},
ios: {
alert: «true»,
badge: «true»,
sound: «true»
},
windows: {}
});
push. on (’registration’, function (data) {
var token=data.registrationId;
jQuery. ajax ({
method: «POST»,
url: "http://backend.appspot.com/backend",
data: {token: token}
});
});
push. on (’notification’, function (data) {
alert (data. title+" Message: " +data.message);
});
push. on (’error’, function (e) {
alert(e.message);
});
}
document.addEventListener("app.Ready», onAppReady, false);
Здесь senderID это номер проекта Google Cloud Platform.
Код сервлета, посылающего сообщение:
import java.io.IOException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.google.android.gcm.server.Message;
import com.google.android.gcm.server.Sender;
import com. google. appengine. api. datastore. DatastoreService;
import com. google. appengine. api. datastore. DatastoreServiceFactory;
import com. google. appengine. api. datastore. Entity;
@SuppressWarnings («serial»)
public class Backend_Breaking_NewsServlet extends HttpServlet {
private String SERVER_KEY=«AIzaS…»;
public void doPost (HttpServletRequest req, HttpServletResponse resp) throws IOException {
String token=req.getParameter («token»);
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService ();
Entity tokenEntity = new Entity («Token»);
tokenEntity.setProperty («token», token);
datastore. put (tokenEntity);
Sender sender = new Sender (SERVER_KEY);
Message message = new Message. Builder ()
.addData («title», «Breaking News»)
.addData («message», «this is the message»)
.build ();
sender.send (message, token, 1);
}
}
Здесь SERVER_KEY это созданный server API key для Google Cloud Messaging.
Правообладателям!
Это произведение, предположительно, находится в статусе 'public domain'. Если это не так и размещение материала нарушает чьи-либо права, то сообщите нам об этом.