Ответ 1
Я задал множество вопросов, подобных этому, и сделал много поисковых запросов, и мне удалось собрать решение из разных мест.
Я создал свое приложение с помощью Cordova 3.5.0 через командную строку. Я считаю, что эти шаги будут работать так же хорошо с Phonegap 3.5.0 и, возможно, более ранними версиями обоих до тех пор, пока это сообщение 3 (CLI). Я использую Eclipse и инструменты ADT из Google
Это не работает с Phonegap Build, поскольку вам нужно редактировать файлы Java и XML в проекте Android.
Для тех, кто не знает, Phonegap - это дистрибутив Adobe Cordova, и он очень похож, но имеет некоторые дополнительные функции сверху, в основном для сборки Phonegap. Я думаю.
Для целей этого сообщения вы можете поменять местами Кордову на Phonegap, по крайней мере, на следующих шагах. Вам нужно будет сделать все эти шаги после создания проекта с помощью CLI Cordova
Кордова/Плагин для разбора
Я использовал следующий плагин для подключения Parse и Cordova. Существует несколько версий плагина, которые были разветвлены несколько раз, но версия от пользователя Github для пользователя benjie делает для вас большую часть автоматизации, сводя к минимуму необходимость заражения ваших рук исходным кодом. Инструкции по установке находятся на странице Github:
- https://github.com/benjie/phonegap-parse-plugin (больше не поддерживается - попробуйте другую вилку)
Обновление активности
Теперь вам нужно будет начать редактирование исходного кода.
Найдите основной класс активности для вашего приложения, в разделе src навигатора Eclipse он будет находиться в вашем основном пакете, что-то вроде com.company.myapp, а затем файл Example.java
(Предположим, что это ваше имя проекта). Он будет создан для вас Кордовой.
В файле добавьте этот импорт, он может просто пойти после остальных операторов импорта:
import com.parse.ParseAnalytics;
И затем в конце метода onCreate
добавьте это, чтобы отслеживать в Parse, когда пользователь открывает приложение из PN
ParseAnalytics.trackAppOpened(getIntent());
Расширение приложения
Эта последняя часть, которую я получил от старых справочных форумов по синтаксическому анализу, заняла у меня самое длинное время для решения.
Если вы покинете приложение, как сейчас, вы можете получать Push-уведомления. На самом деле вы должны проверить это, чтобы убедиться, что вы сделали это правильно до сих пор.
... но если вы закроете приложение (например, на Galaxy S2 нажмите и удерживайте кнопку "домой" ), вы перестанете прикладывать уведомления к Push Push.
Я считаю, что это потому, что вы убиваете все аспекты приложения, заставляя его закрываться, включая слушателя для PN.
Используя следующие сообщения, мне удалось заставить приложение получать PN файлы после принудительного закрытия:
- https://www.parse.com/questions/push-notification-in-android-while-app-closed
- https://www.parse.com/questions/cannot-send-push-to-android-after-app-is-closed-until-screen-unlock
Фактическое решение для меня состояло в том, чтобы выполнить следующие два шага:
1: добавьте новый файл с именем ExampleApplication.java
рядом с вашим Example.java
в com.company.myapp в разделе src в Eclipse. Файл нуждается в следующем содержимом, обновленном соответственно для вашего проекта (например, вашего пакета и ключей анализа):
package com.company.myapp;
import android.app.Application;
import android.content.Context;
import com.parse.Parse;
import com.parse.ParseInstallation;
import com.parse.PushService;
import com.company.myapp.Example;
public class ExampleApplication extends Application
{
private static ExampleApplication instance = new ExampleApplication();
public ExampleApplication() {
instance = this;
}
public static Context getContext() {
return instance;
}
@Override
public void onCreate() {
super.onCreate();
// register device for parse
Parse.initialize(this, "APP_KEY", "CLIENT_KEY");
PushService.setDefaultPushCallback(this, Example.class);
ParseInstallation.getCurrentInstallation().saveInBackground();
}
}
2: обновите свой AndroidManifest.xml, чтобы тэг <application>
имел следующее свойство, наряду с уже имеющимся:
android:name="com.company.myapp.ExampleApplication"
Резюме
Как только вы это сделаете, вы сможете отправлять уведомления в приложение Android.
Подводя итог:
- Установите плагин Phonegap/Parse
- Обновить основной класс активности
- Расширить основной класс приложения
Вероятно, это переносится в проекты, отличные от eclipse, большинство шагов будет почти идентичным, и если у кого-то есть какая-либо обратная связь относительно Android Studio или здания без IDE, мы могли бы обновить этот ответ, чтобы это отразить.