跳到主要内容

1.1.0

注意

该门户网站正在开发中。文档的完整版本请看这里.

实现示例

为了了解如何正确集成用于处理 push-通知的包,建议您参阅示例应用程序

必要条件

为了推送通知的运行,必须遵守以下条件:

  1. 用户的设备上必须安装 RuStore。
  2. RuStore 必须支持推送通知功能。
  3. RuStore 应用程序应允许在后台模式下运行。
  4. 用户必须在 RuStore 中获得授权。
  5. 应用程序的签名指纹必须与 RuStore 控制台系统中添加的指纹匹配。

在项目中集成

要将包连接到项目中,需要将其添加到依赖项中:

https://gitflic.ru/project/rustore/defold-extension-rustore-push/file/downloadAll?branch=master

更好的做法是指定特定的发布版本:https://gitflic.ru/project/rustore/defold-extension-rustore-push/release/

初始化

为了初始化 push-通知服务,您需要在项目的 game_project 中添加一个值。使用任何方便的文本编辑器打开它,在 [android] 部分添加

\[android\]rustore_project_id = %your project id%package = %your package%

这里,%your project id% - 项目的标识符,%your package% - Android 包。在开发者控制台,该字段被称为 "项目 ID" 和 "Android Package Name",位于 "Push-通知" -> "项目" 页面。

默认设置的推送消息标题和正文

如果 data 消息中没有,可以为推送通知的标题和正文添加默认值。

\[android\]push_field_title = default push titlepush_field_text = default push body

ndroid 设备上的推送通知服务会自动启动,当调用ruStorePush.set_on_token()

处理 push-token 和消息的方法

获取用户的推送令牌

为获取推送令牌,需要在 ruStorePush.set_on_token() 中添加 callback 到 listener。listenerruStorePush.set_on_token()

如果用户没有推送令牌,该方法将返回一个新的推送令牌。

local function new_token(self, token, error)    \`\`if token then       \`\`print(token)    \`\`else       \`\`print(error.error)    \`\`endendlocal function push_android()    \`\`ruStorePush.set_on_token(new_token)end

令牌更改事件

旧令牌可能会定期失效。可以重新发放令牌。这些事件在 _ 中返回callbackruStorePush.set_on_token()

处理 push 消息

要从 push 通知中获取信息,需要添加回调函数 ruStorePush.set_on_message()ruStorePush.set_on_message()

local function listener(self, payload, activated)    \`\`\-- The payload arrives here.    \`\`pprint(payload)endlocal function push_android()    \`\`ruStorePush.set_on_message(listener)end

听器结构体

  • payload推送通知的 data 字段 (lua table)
  • activated用户是否通过点击推送进入应用程序 (bool)

完整示例

local function listener(self, payload, activated)    \`\`\-- The payload arrives here.    \`\`pprint(payload)endlocal function new_token(self, token, error)    \`\`if token then       \`\`print(token)    \`\`else       \`\`print(error.error)    \`\`endendlocal function push_android()    \`\`ruStorePush.set_on_token(new_token)    \`\`ruStorePush.set_on_message(listener)        \`\`print( \"Rustore pushes registered\" )endfunction init(self)    \`\`local sysinfo = sys.get_sys_info()    \`\`if sysinfo.system_name ==  \"Android\" then        \`\`push_android()    \`\`else        \`\`print( \"Notifications work only Android\" )    \`\`end    \`\`msg.post( \".\" ,  \"acquire_input_focus\" )end

重要提示

不要发送包含 notification 和 android.notification.title 的 push 消息,这些将由 RuStore 处理。并且它们不会正确工作,不能通过这些消息进入应用程序。

发送 data push 时包括以下字段

  • title - 用于 push 消息的标题;
  • message - 用于 push 消息的正文。