推送系统接口

来自AnySDK 文档
跳转至: 导航搜索

推送系统

开发者可以及时的向自己的用户推送通知消息,与用户时刻互动,有效提升用户体验。本文介绍了如何使用AnySDK接入推送服务。

术语说明

别名(Alias)

为安装了应用程序的用户,取个别名来标识。以后给该用户 Push 消息时,就可以用此别名来指定。
1、每个用户只能指定一个别名。
2、同一个应用程序内,对不同的用户,建议取不同的别名。这样,尽可能根据别名来唯一确定用户。
3、系统不限定一个别名只能指定一个用户。如果一个别名被指定到了多个用户,当给指定这个别名发消息时,服务器端API会同时给这多个用户发送消息。
举例:在一个用户要登录的游戏中,可能设置别名为 userid。游戏运营时,发现该用户 3 天没有玩游戏了,则根据 userid 调用服务器端API发通知到客户端提醒用户。

标签(Tag)

为安装了应用程序的用户,打上标签。其目的主要是方便开发者根据标签,来批量下发 Push 消息。
1、可为每个用户打多个标签。
2、不同应用程序、不同的用户,可以打同样的标签。
举例: game, old_page, women

设置监听

设置

为推送系统设置监听。
ProtocolPush* _pPush = AgentManager::getInstance()->getPushPlugin();
if(!_pPush) return;
_pPush->setActionListener(this);
为接受回调,需要重写onActionResult接口
class Push:public PushActionListener
{
public:
	 virtual void onActionResult(ProtocolPush* pPlugin, PushActionResultCode code, const char* msg);
}

回调信息

回调信息 code msg
接受到推送消息 kPushReceiveMessage 消息信息

相关接口

开启服务

void startPush() ;
功能说明:
开启推送服务
举例说明
//开启推送
void Push::startPush()
{
   ProtocolPush* _pPush = AgentManager::getInstance()->getPushPlugin();
   if(!_pPush) return ;
   _pPush->startPush();
}

关闭服务

void closePush() ;
功能说明:
关闭推送服务
举例说明
//关闭推送
void Push::closePush()
{
    ProtocolPush* _pPush = AgentManager::getInstance()->getPushPlugin();
    if(!_pPush) return ;
    _pPush->closePush();
}

设置别名

void setAlias(string alias);
功能说明:
为应用设置别名
举例说明
//设置别名
void Push::setAlias()
{
    ProtocolPush* _pPush = AgentManager::getInstance()->getPushPlugin();
    if(!_pPush) return ;
    _pPush->setAlias("AnySDK");
}

删除别名

void delAlias(string alias);
功能说明:
删除此前设置的别名
举例说明
//删除别名
void Push::delAlias()
{
    ProtocolPush* _pPush = AgentManager::getInstance()->getPushPlugin();
    if(!_pPush) return ;
    _pPush->delAlias("AnySDK");
}

设置标签

void setTags(list<string> tags);
功能说明:
为应用设置标签
举例说明
//设置标签
void Push::setTags()
{
    ProtocolPush* _pPush = AgentManager::getInstance()->getPushPlugin();
    if(!_pPush) return ;
    list<string> tags;
    tags.push_back("easy");
    tags.push_back("fast");
    _pPush->setTags(tags);
}

删除标签

void delTags(list<string> tags);
功能说明:
删除此前为应用设置的标签
举例说明
//删除标签
void Push::delTags()
{
    ProtocolPush* _pPush = AgentManager::getInstance()->getPushPlugin();
    if(!_pPush) return ;
    list<string> tags;
    tags.push_back("easy");
    tags.push_back("fast");
    _pPush->delTags(tags);
}