推送系统接口(Lua)

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

推送系统

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

获取推送系统

获取推送系统的插件,首先需要初始化并loadAllPlugins,但注意初始化和load最好只进行一次。

<pre>
--获取AgentManger
local agent = AgentManager:getInstance()
--初始化并load plugins(注意:初始化和load最好只进行一次,建议agent设置为全局的)
--init
local appKey = "BA5B660B-6DD5-0F67-8CC7-8FE0BA7545D6";
local appSecret = "e23ae7d6da34334d4cc11df0dc7f3de0";
local privateKey = "76E1D975EA4B9A4ECD0E85AF2D782E99";
local oauthLoginServer = "http://oauth.anysdk.com/api/OauthLoginDemo/Login.php";
agent:init(appKey,appSecret,privateKey,oauthLoginServer)
--load
agent:loadAllPlugins()

--get push
local push_plugin = agent:getPushPlugin()

</pre>

术语说明

别名(Alias)

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

标签(Tag)

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

设置监听

设置

为推送系统设置监听。
local function onPushResultListener( plugin, code, msg )  --plugin:plugin, code: push result code,  msg push result message.
   print("on push result listener.")
end
push_plugin:setActionListener(onPushResultListener)
为接受回调,需要在onPushResultListener处理回调信息
local function onPushResultListener( plugin, code, msg )  --plugin:plugin, code: push result code,  msg push result message.
   print("on push result listener.")
   print("plugin:" .. type(plugin))
   print("push action result code:" .. code)
   print("push action result message:" .. msg)
   if code == PushActionResultCode.kPushReceiveMessage then
       --do something
   end
end

回调信息

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

相关接口

开启服务

startPush() ;
功能说明:
开启推送服务
举例说明
--开启推送
push_plugin:startPush()

关闭服务

stopPush() ;
功能说明:
关闭推送服务
举例说明
--关闭推送
push_plugin:closePush()

设置别名

setAlias(alias);
功能说明:
为应用设置别名
举例说明
--设置别名
push_plugin:setAlias("AnySDK")

删除别名

delAlias(alias);
功能说明:
删除此前设置的别名
举例说明
--删除别名
push_plugin:delAlias("AnySDK")

设置标签

setTags(tags);
功能说明:
为应用设置标签
举例说明
--设置标签
push_plugin:setTags({"big", "young", "strong"})

删除标签

delTags(tags);
功能说明:
删除此前为应用设置的标签
举例说明
--删除标签
push_plugin:delTags({"big", "strong"});