我之前使用以下代码在我的混合移动应用程序中实现推送。
if (json != null)
{
httpPost.setEntity(new StringEntity(json, "UTF-8"));
}
现在由于推送服务的变化,我正在实施推送通知,\
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);
}
但我得到以下错误。
启动时出错 - >> ReferenceError:未定义BMSClient。
在我的index.html中,我已经包含了MPUSH.js和BMSClient.js
我通过创建一个cordova项目并为他们添加环境来获取这些.js(MFPush.js,BMSClient.js)文件。
我已经浏览过blumix文档,针对iOS,Android和Cordova应用程序提供推送通知,但不适用于混合移动应用程序。
请帮助这方面!!
我没有在我的混合应用程序中使用适配器来初始化Bluemix SDK。
我还检查了以下链接。
答案 0 :(得分:0)
最终更新
我原本以为该项目在拾取cordova桥时遇到了麻烦,但是,我发现缺少原生依赖项。这是因为MFP不支持Gradle,因此您需要对插件进行一些编辑,以使项目在MFP中运行。
为您想要使用的每个插件完成以下操作:
.aar
。 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。