Как отправлять/получать push-уведомления от ионного мобильного приложения?
У меня есть приложение для обмена сообщениями, построенное с использованием Ionic framework (на кордове). Я планирую создать это для android, и я бы хотел, чтобы отправить и получить push-уведомления из приложения, используя javascript/ionic.
Есть ли хорошие учебники о том, как это сделать?
Ответы
Ответ 1
Существует пример приложения, доступный Холли Шински. Ядром этого является использование PushPlugin, который является стандартным методом обработки push-уведомлений на Кордове. В этой документации по этому репозиторию GitHub имеется довольно обширное учебное пособие по этому вопросу. Основной метод pushNotification.register
, который регистрирует устройство для прослушивания push-уведомлений.
Если вам нужно инициировать уведомление локально, вы можете вместо этого взглянуть на Локальный плагин уведомлений. С его помощью вы можете добавлять уведомления, которые будут отображаться на устройстве, без необходимости отправки внешних уведомлений на внешние службы.
Ответ 2
Используйте этот плагин https://github.com/phonegap-build/PushPlugin.
Устройства Android получают push-уведомления через службу облачных сообщений Google (GCM), в то время как устройства iOS получают их из службы Apple Push Notifications (APN).
Способ получения уведомлений (по звуку, предупреждению и т.д.) представляет собой комбинацию параметров, заданных в коде приложения при регистрации, а также настроек устройства пользователя для уведомлений.
Если вы хотите более подробно следовать ниже учебнику:
http://devgirl.org/2013/07/17/tutorial-implement-push-notifications-in-your-phonegap-application/
Ответ 3
ngCordova имеет плагин, который поддерживает Push Notifications. В нем есть пример кода для iOS и Android. Проверьте это: http://ngcordova.com/docs/plugins/pushNotifications/
Ответ 4
Последняя версия phonegap-plugin-push позволяет регистрировать и получать push-уведомления в ваших ионных приложениях. Он поддерживается на следующей ссылке Github:
https://github.com/phonegap/phonegap-plugin-push
Установка:
cordova plugin add https://github.com/phonegap/phonegap-plugin-push --variable SENDER_ID="XXXXXXX"
Где XXXXXXX
в SENDER_ID="XXXXXXX"
отображает номер проекта в Google Developer Console. Чтобы найти номер входа в проект в Консоль разработчика Google, выберите свой проект и нажмите на пункт меню на снимке экрана ниже, чтобы отобразить номер вашего проекта.
![zzns8]()
Если вы не создаете приложение для Android, вы можете добавить что-нибудь для этого значения.
Примечание. Возможно, вам нужно указать переменную SENDER_ID в вашем пакете. json.
"cordovaPlugins": [
{
"variables": {
"SENDER_ID": "XXXXXXX"
},
"locator": "phonegap-plugin-push"
}
]
Примечание. Вам нужно указать переменную SENDER_ID в файле config.xml, если вы планируете устанавливать/восстанавливать плагины с помощью метода подготовки. Метод подготовки пропустит установку плагина в противном случае.
<plugin name="phonegap-plugin-push" spec="1.6.0">
<param name="SENDER_ID" value="XXXXXXX" />
</plugin>
После установки вы можете добавить код ниже в свой основной файл javascript для регистрации и получения push-уведомлений:
$ionicPlatform.ready(function () {
var push = PushNotification.init({
android: {
senderID: "XXXXXXX"//, //project token number (12 digit) from https://console.developers.google.com
// forceShow: "true", //force show push notification when app is in foreground on Android only.
},
browser: {
pushServiceURL: 'http://push.api.phonegap.com/v1/push'
},
ios: {
/*senderID: "XXXXXXX",*/ //If using GCM for ios, project token number (12 digit) from https://console.developers.google.com
/*gcmSandbox: 'true',*/ //If using GCM for ios
alert: 'true',
badge: 'true',
sound: 'true',
},
windows: {}
});
PushNotification.hasPermission(function (permissionResult) {
if (permissionResult.isEnabled) {
$log.debug("has permission for push notification");
/*Register device with GCM/APNs*/
push.on('registration', function (data) {
// data.registrationId
$log.debug("data.registrationId: " + data.registrationId);
});
push.on('notification', function (data) {
// data.message,
// data.title,
// data.count,
// data.sound,
// data.image,
// data.additionalData
$log.debug(JSON.stringify(data));
});
push.on('error', function (e) {
// e.message
$log.debug("e.message: " + e.message);
//alert(e.message);
});
}
});
}
}