Как реализовать Push-уведомление в гибридном мобильном приложении с использованием Bluemix
Ранее я реализовывал push в своем гибридном мобильном приложении, используя приведенный ниже код.
function EnablePushNotification(email)
{
var config = {
applicationId:'',
applicationRoute:'',
applicationSecret:''
//applicationSecret:''
};
console.log("EnablePushNotification : " + email);
return IBMBluemix.initialize(config)
.then(function() {
return IBMPush.initializeService();
})
.then(function(push1) {
var push = IBMPush.getService();
//device.model
//userName
push.registerDevice(email, email, "alertNotification")
.done(function(response) {
navigator.notification.alert("Device Registered : " + response);
console.log("Device Registered : " + response);
push.subscribeTag("SmarterSAM-Test").done(function(response) {
navigator.notification.alert("Device Subscribed : " + response);
console.log("Device Subscribed : " + response);
}, function(err){
navigator.notification.alert("Error in subscribe : " + err);
console.log("Error in subscribe : " + err);
});
}, function(err){
navigator.notification.alert("Error in Registering Device : " + err);
//console.log("Error in subscribe : " + err);
});
});
}
function alertNotification(message)
{
IBMBluemix.getLogger().info("Received notification");
navigator.notification.alert("Received notification : " + message);
}
Теперь из-за изменений в службе Push, я внедряю Push-уведомления, \
function EnablePushNotification(email)
{
//deviceUserID = email;
console.log("--Inside EnablePushNotification--");
try {
//initialize SDK with IBM Bluemix application ID and route
//TODO: Please replace <APPLICATION_ROUTE> with a valid ApplicationRoute and <APPLICATION_ID> with a valid ApplicationId
debugger;
BMSClient.initialize("<APPLICATION_ROUTE>","<APPLICATION_ID>");
var success = function(message) { console.log("Success: " + message); };
var failure = function(message) { console.log("Error: " + message); };
MFPPush.registerDevice({}, success, failure);
this.registerNotificationsCallback();
}
catch (MalformedURLException) {
console.log("Error in initilization-->>" + MalformedURLException);
}
}
Но я получаю ниже ОШИБКУ.
Ошибка при инициализации ->>ReferenceError: BMSClient не определен.
В моем index.html я включил MPUSH.js и BMSClient.js
я получил эти файлы.js (MFPush.js,BMSClient.js), создав проект cordova и добавив к ним среду.
Я ознакомился с документами blumix, Push Notification предоставляется для приложений iOS, Android и Cordova, но не для гибридного мобильного приложения.
Пожалуйста, помогите в этом отношении!
Я не использую адаптеры в своем гибридном приложении для инициализации Bluemix SDK.
Я также проверил ссылку ниже.
1 ответ
Окончательное обновление
Первоначально я думал, что у проекта возникли проблемы с подключением моста кордовы, однако я понял, что родные зависимости отсутствуют. Это связано с тем, что MFP не поддерживает Gradle, поэтому вам нужно будет внести некоторые изменения в плагины, чтобы проект работал в MFP.
Выполните следующие действия для каждого плагина, который вы хотите использовать:
- Скачать соответствующий
.aar
из списка Bluemix MobileFirst Maven центральных репозиториев. - Извлечь
classes.jar
от.aar
и переименовать.jar
к чему-то, что можно идентифицировать с этим плагином (например, core-1.1.1.jar) - После добавления плагина в ваш проект создайте
libs
папка вplugins/<plugin-name>/src/android
и бросьте свой недавно переименованный.jar
в этоlibs
каталог. - Наконец, откройте
plugin.xml
файл и добавьте путь сборки к.jar
в пределах<platform name="android">
цель. Это должно выглядеть примерно так<lib-file src="src/android/libs/core-1.1.1.jar" />
Это необходимо делать для каждого подключаемого модуля Bluemix Mobile Services, пока MFP не поддерживает Gradle.