|
第 1 步. 创建一个 Apache Cordova 项目
如果已有一个混合移动项目,可以跳到 第 2 步。
1.如果还未针对 Apache Cordova 设置您的环境,请进行相应的设置。下载
Apache Cordova 的节点打包模块。
2.打开一个命令提示符。
3.创建一个新项目: cordova create bluemixpush
com.example.bluemixpush BluemixPush
4.将 cd bluemixpush 迁移到新创建的项目目录中。
5.添加您想要用于测试的平台。例如: cordova platform
add android
如果这是您第一次为某个特定平台开发 Cordova 项目,则需要完成额外的设置步骤。例如,配置一个
Android 环境:
1.安装 Android SDK。
2.将 Android tools 和 platform-tools
位置添加到您的 PATH 中。
3.下载 ANT 并将它添加到您的 PATH 环境变量中。
4.确保已在 PATH 变量中设置了 Java。
5.下载并安装带 ADT 的 Eclipse 来运行模拟器,使用 Eclipse
LogCat 功能调试您的应用程序,以上操作是可选操作。
第 2 步. 添加针对 IBM Push for Bluemix 的
Cordova 插件
1.转到 Apache Cordova plugins 页面。
2.搜索 IBM 以查看来自 IBM 的所有可用插件。
3.单击 com.ibm.mobile.cordova.ibmpush
插件打开一个细节页面,其中描述了 Cordova IBMPush 插件。
4.安装该插件。在 Cordova 项目中键入此命令来使用 Cordova
CLI: cordova plugin add com.ibm.mobile.cordova.ibmpush
在完成安装后,可以在插件目录中看到为您的项目安装的插件。您还可以在命令行上运行
cordova plugins list,以便查看安装的插件。
现在您已准备好在 Android 混合应用程序中使用 IBM Push for Bluemix 了。
第 3 步. 设置 IBM Bluemix
1.登录到 Bluemix。
2.在 Dashboard 视图中的 Applications 下,单击
Add an application。
3.在新页面上,选择 Boilerplates 部分中的 Mobile
Cloud 选项。
4.单击 Create Application。
5.在新对话框中,选择空间并为您的应用程序命名。
6.单击 Create。您现在会看到仪表板,以及您的应用程序和一个绿色状态按钮。
7.单击您的应用程序,以便转到 Applications 页面,可以在该页面上看到哪些服务绑定到了该应用程序,以及
Application ID。需要 Application ID 来连接 Bluemix 服务。复制 Application
ID 值。 Applications 页面
第 4 步. 熟悉 Push 服务
1.在移动应用程序信息页面上浏览 Bluemix 中的新移动应用程序时,在
Services 下查找 Push 服务: Services 页面
2.单击 Push 服务。这是您的仪表板,其中包含您的应用程序与 Push
相关的所有信息。您甚至可以使用此仪表板向设备发送测试通知。
第 5 步. 在移动应用程序中集成 Bluemix Push
现在您已准备好返回开发模式了。现在将 Bluemix Apache Cordova push JavaScript
API 添加到混合移动应用程序中,以便注册一个设备。
1.在您最喜爱的 IDE 中打开您的混合应用程序。(单击上面的 “获取代码”
按钮克隆一个已完成的应用程序。)
2.打开 www/js 目录中的 index.js 页面(或您希望使用的另一个
JavaScript 文件)。
3.使用您的配置值创建一个 JSON 对象:
applicationId:您记下的 applicationID 的值
applicationRoute:创建应用程序时应用程序 URL 的值。例如,bluemixpush123.mybluemix.net
applicationSecret:应用程序安全秘密。 参见 第 7 步. 确定应用程序应用程序秘密。
4.创建一个新函数来初始化 IBM Mobile Backend as
a Service (MBaaS) 服务:
// Push Notification contentvar ibmbluemix, ibmpush; var values = { applicationId: "____your app id___________", applicationRoute: "___your app route____", applicationSecret: "___your app secret____", }; function initPush(){ console.log("initPush called-------------------------------"); ibmbluemix = IBMBluemix.hybrid; ibmpush = IBMPush.hybrid; console.log("calling bluemix initialize with values-------------------------------"); ibmbluemix.initialize(values) //ibmpush.initializeService(); } |
5.从 onDeviceReady 函数内调用 initPush 方法。
6.从命令行运行 cordova run android,以便确认插件已成功安装。(如果安装未成功,请参见
第 8 步. 调试常见错误,了解相关的技巧。)
7.现在返回修改该函数,以便在初始化 Bluemix 服务后初始化 Push
服务。
function initPush(){ console.log("initPush called---------------------------------"); ibmbluemix = IBMBluemix.hybrid; ibmpush = IBMPush.hybrid; console.log("calling bluemix initialize with values--------------------------------"); ibmbluemix.initialize(values).then(function(status) { console.log("IBM Bluemix Initialized", status); return ibmpush.initializeService(); }, function (err) { console.error("IBM Bluemix initialized failed" , err); }).then(function(pushObj) { console.log("IBM Push Initialized", pushObj); push = pushObj; return push.registerDevice(); }, function (err) { console.error("IBM Bluemix Push initialized failed" , err); }); } |
8.运行代码。您应该在输出上看到 Push 服务已成功初始化。
第 6 步. 注册设备
我们的操作基本上完成了!如果仔细查看日志,就可以看到一条错误消息,其中未包含通知成功回调。要继续处理:
1.更新对 registerDevice 的调用以包含更多信息:一个别名、用户
id 和回调方法的名称:
push.registerDevice("LisaTest","Lisa123","pushReceived"); |
consumerId 和 alias 可以是您喜欢的任何值。基于别名或用户
id 而向特定设备发送推送消息时,可以使用这些值。第 3 个值是在设备收到消息时,将负责处理的方法名称。使用该名称创建一个新函数。例如:
//success callback for when a message comes infunction pushReceived(info) { console.log("registerListener - " + info.alert); alert('got a push message! ' + info.alert); } |
2.运行代码。您会看到一些日志语句,告诉您设备已成功注册。
3.要确认设备已注册,请转到 Bluemix 控制台。单击您应用程序的
Push 服务,并导航到 Registrations 选项卡。可以在该列表中看到您的设备。您可以注意到,Consumer
ID 与您在注册设备时提供的 ID 相匹配: Registrations 页面
您已设置了混合 Apache Cordova 应用程序来使用 Bluemix push 服务并注册了您的设备。现在可以测试接收推送通知。
第 7 步. 确定应用程序秘密
1.打开 IBM Bluemix 控制台并单击您的应用程序。在 Development
Services 下,单击 Mobile Application Security 服务:Development
Services 页面
2.在第一个选项卡 Registered Clients 下,可以看到
Application ID 和 Application Secret: Registered Clients
页面
将此值复制并粘贴到 Application Secret 字段中,以配置您的混合应用程序的推送服务。如果该值已损坏,那么可以单击
Regenerate 按钮获得一个新值。
第 8 步. 调试常见错误
如果在日志控制台中看到一条消息显示 Uncaught ReferenceError:IBMLogger
is not defined,那么可以尝试执行以下步骤来解决它:
1.从应用程序中删除平台:
cordova platform remove android
2.再次添加该平台:
cordova platform add android
3.重试。
如果没有解决问题,可以尝试执行以下步骤:
1.删除 IBMPush 和 IBMBluemix 插件:
cordova plugin remove com.ibm.mobile.cordova.ibmpush
这会删除两个插件。如果没有,则手动删除 IBMBluemix 插件。
2.首先添加 IBMBluemix 插件:
cordova plugin add com.ibm.mobile.cordova.ibmbluemix
3.然后添加 IBMPush 插件:
cordova plugin add com.ibm.mobile.cordova.ibmpush
4.重试。
如果看到一条错误显示 missing GCM & APNS credentials,则表明没有在
Bluemix 中输入应用程序的 Google Cloud Messaging 或 Apple Push
Notification Service 凭据。要解决这个问题,请按照 第 9 步. 在 Bluemix
中输入推送通知凭据 中的说明进行操作。
您可能得到一个错误显示 IBMPush:为通知回调函数指定了无效的值。在通知到达时指定回调函数名称。如果查看
Cordova 插件中的 IBMPushHybrid.js 文件,则会看到用于调用 registerDevice
函数的签名为:
registerDevice: function (consumerId, alias, pushCallback) |
更新代码,以便包含回调方法名称。
第 9 步. 在 Bluemix 中输入推送通知凭据
如果看到一个错误表明 GCM 和 APNS 凭据为输入:
1.返回到 Bluemix 仪表板中您的移动应用程序页面。
2.选择 Push 服务,以便打开推送服务仪表板页面。
3.单击 Configuration 选项卡。
4.如果未输入凭据,则单击您想要启用的推送服务的 Edit 按钮。
5.如果已有凭据,则将它们输入到合适的字段中并保存。如果没有凭据且不确定如何获取它们,那么请单击信息图标。此时将会出现一个弹出窗口,解释如何注册获取推送凭据。(可输入两组凭据,一组用于
Sandbox,另一组用于 Production。在准备好切换后,可以在 Sandbox 和 Production
之前切换服务模式。)
6.保存更改。
第 10 步. 测试接收推送通知
现在您已准备好测试在应用程序收到推送通知时会发生什么。可以通过多种方式发送推送通知。
使用 Bluemix JavaScript SDK 发送推送通知
有关的分步说明,请参阅 “在 5 分钟内从移动应用程序发送推送通知。”
使用 IBM Bluemix 控制台发送推送通知
1.导航到 Bluemix 并单击您的应用程序。
2.单击 Push 服务。
3.切换到 Notification 选项卡,以便获取一个发送推送通知的表单。
4.在表单上输入所需的信息并单击 Next。
5.在下一个屏幕上,选择要将测试消息发送到哪些设备。
6.单击 Send。一条消息会显示该消息已发送。
7.现在查看您的移动设备或模拟器。如果收到该消息,那么您会获得上一步中设置的提醒。
成功收到消息的提醒
使用 REST 服务发送推送通知

也可以调用 IBM Bluemix REST API 来发送推送通知。对于本示例,我使用了针对 Chrome
的 Postman 应用程序。
1.将方法设置为 POST。
2.将 URL 设置为: https://mobile.ng.bluemix.net/push/v1/apps/YOUR-APPID/messages
3.设置标头:
Content-Type: application/json
Cache-Control: no-cache
IBM-Application-Secret:___your app secret____
4.创建一个 JSON 载荷来发送请求:
{ "message": { "alert": "Test Message from REST" } } |
您的页面现在看起来类似于:

5.单击 Send。
6.您的设备收到该消息。 使用 REST 服务成功发送消息
结束语
学完本教程后,您就可以使用 Cordova CLI 在现有或新的混合移动应用程序中添加 IBM Bluemix
推送功能了。您还可以调用 Bluemix 服务来注册一个设备和接收推送通知。
|