推送技术指南
参考视频
推送准备
编译正式版App,并安装到手机
推送只对正式版App有效,请先创建或上传Android ,iOS 证书,然后编译App正式版。 把编译的正式版App安装到手机。
iOS推送证书
iOS推送证书需要从苹果开发网站上面创建,然后再转换成服务器端专用p12格式证书,详情参考iOS证书申请教程
推送设置
进入APICloud官网你的应用页面,在侧边栏‘应用服务’里面选择‘推送’,进入推送页面。如下图:
然后在页面里选择右上角的设置按钮,弹出推送证书设置页面,注意开启状态,然后上传之前创建的推送证书,并且输入密码,保存。同时,在此页面还可以设置离线消息的保存时间,之前未收到通知的设备在离线消息设定时间以内上线后会收到通知消息。 如下图:
新建推送消息
即时通知
选择右上角的新建推送,在展开的发送页面中,选择推送类型是通知或消息,输入标题和内容,选择推送群组和平台,点击发送,通知将立即进入发送状态。
定时通知
此项功能暂未开启。
查看推送统计
推送概览与推送记录
在推送页面的顶部‘推送概览’页,可以查看到推送条数和终端数目等相关数据。
在推送概览下面是推送记录页面,包括定时发送、正在发送和发送成功等状态的推送消息记录。
接收推送消息
push模块
在APICloud网站上面创建应用时,push模块默认已经被引入。push模块提供了绑定用户,加入群组,监听消息等接口。 详情参考push文档。
绑定推送
push模块提供了bind方法,将来自业务系统的用户信息绑定至推送服务器,如果不需要关联业务系统用户信息,则可以不调用bind方法。详情参考push文档bind方法。
示例代码:
// 绑定用户
var push = api.require('push');
push.bind({
userName:'testName',
userId:'testId'
},function(ret,err){
if(ret.status){
api.alert({msg:'绑定成功'});
}else{
api.alert({msg:err.msg});
}
});
// 解绑用户
var push = api.require('push');
push.unbind({
userName:'testName',
userId:'testId'
},function(ret,err){
if(ret.status){
api.alert({msg:'解除绑定成功'});
}else{
api.alert({msg:err.msg});
}
});
设置群组
设备需要绑定到相应的群组才能收到推送消息,在应用启动时,APICloud会自动绑定设备到默认群组,push模块的joinGroup方法可以将设备添加到指定群组,leavelGroup则将设备从指定群组中移除。详情参考push文档joinGroup、leavelGroup方法。
// 加入群组
var push = api.require('push');
push.joinGroup({
groupName:'department'
},function(ret,err){
if(ret.status){
api.alert({msg:'加入组成功'});
}else{
api.alert({msg:err.msg});
}
});
// 退出群组
var push = api.require('push');
push.leaveGroup({
groupName:'department'
},function(ret,err){
if(ret.status){
api.alert({msg:'退出群组成功'});
}else{
api.alert({msg:err.msg});
}
});
获取推送消息
push模块提供setListener方法,当通知消息到达时会通过此方法回调给前端页面,所有未处理的消息会被添加到一个数组里面返回。 注册该监听后,在应用启动的状态下,“消息”类型的推送,将直接交给该函数的回调,由开发人员自行处理推送消息,不自动弹出通知到手机状态栏。如果移除监听,则又会自动弹出通知到手机状态栏;在应用退出的状态下,“消息”类型的推送,APICloud引擎也会自动弹出通知到手机状态栏。“通知”类型的推送则会直接弹出通知到手机状态栏,不会交给监听函数的回调。 详情参考push文档setListener方法。
示例代码:
//设置监听
var push = api.require('push');
push.setListener(
function(ret,err){
if(ret){
api.alert({msg:ret.data});
}
}
);
//移除监听
var push = api.require('push');
push.removeListener();
使用推送API
请参考推送云API文档。