【问题标题】:Appcelerator Push Notification error on Android only仅 Android 上的 Appcelerator 推送通知错误
【发布时间】:2014-05-12 14:30:14
【问题描述】:

钛版:3.1.3。

我仍在使用适用于 Android 的 MQTT,直到几周前一切正常(可能直到 mqtt on acs 被弃用)。但我读到仍然可以使用 MQTT(而不是 gcm)。根据 appcelerator 上的另一篇文章,我只需要在 tiapp.xml 中定义 mqtt,但这不起作用。

这是我的 tiapp.xml 的一部分

<property name="acs-push-type-development" type="string">mqtt</property>
<property name="acs-push-type-production" type="string">mqtt</property>
<property name="acs-push-type" type="string">mqtt</property>
...
<module platform="android" version="2.3.2">ti.cloudpush</module>
<module platform="android" version="2.1.2">ti.map</module>
<module platform="commonjs" version="2.3.7">ti.cloud</module>

这就是我从 appcelerator 日志中得到的信息:

`"response": {"push_log_details": [
    {
    "created_at": "2014-05-12T13:02:35.389Z",
    "updated_at": "2014-05-12T13:02:31.094Z",
    "type": "android",
    "android_type": 1,
    "app_id": "52724d7cd72ec85152039256",
    "channel": "stickin",
    "_id": "5370c66be511ea7ab99881d4",
    "token": "ND1M2IX8RU8RGJDICW13I9V",
    "push_id": "5370c6641316e90db2311567",
    "send_status": 2,
    "sent_at": "2014-05-12T13:02:30.996Z",
    "error_message": "argument cannot be null",
    "msg_id": "fa89cfb6-f2d2-4222-b442-a47d2625b419"
    },
    {
    "created_at": "2014-05-12T13:02:35.389Z",
    "updated_at": "2014-05-12T13:02:31.094Z",
    "type": "android",
    "android_type": 1,
    "app_id": "52724d7cd72ec85152039256",
    "channel": "stickin",
    "_id": "5370c66be511ea7ab99881d6",
    "token": "ND13ST3OA0MHE079H6EYV8P",
    "push_id": "5370c6641316e90db2311567",
    "send_status": 2,
    "sent_at": "2014-05-12T13:02:30.996Z",
    "error_message": "argument cannot be null",
    "msg_id": "77fc5c7f-9703-46e5-a433-7be0796421f2"
    }, .....
`

"argument cannot be null" 似乎是一个 gcm 响应代码。我尝试删除 gcm 的 apiKey 和发件人 id 并仅保存应用程序包名称 (MQTT),但随后我收到错误 gcm_apiKey 为空。如果我在 tiapp.xml 中定义 mqtt,我认为 push 不使用 gcm?顺便说一句,在 iOS 上一切正常,但当然 mqtt 并没有在那里使用。

【问题讨论】:

    标签: android push appcelerator google-cloud-messaging mqtt


    【解决方案1】:

    检查以下

    1. 您使用的 CloudPush 模块版本应低于 3.2.0

    2. 您应该在订阅推送通知时指定“android”作为类型。 (在 GCM 的情况下,您必须使用 'gcm')

    但是Appcelerator 已从 2014 年 3 月 15 日起删除了 MQTT 支持。。 所以最新的 CloudPush 模块将不再支持 MQTT。 请参阅下面的屏幕截图。您可能会在 ACS 服务器上看到这一点。您需要将您的应用升级到 GCM 以解决问题,升级到 GCM 非常简单。我之前已经做过了。我建议您应该将您的应用升级到 GCM 支持。

    也可以访问 Appcelerator 博客中的Android Push Notification: Deprecating MQTT in favor of GCM

    【讨论】:

    • 感谢您的回答,CloudPush 模块版本与使用的钛版本相同吗?如果不是,我在哪里可以查看 CloudPush 模块版本?我用的是钛 3.1.3。订阅绝对正确完成
    • 不需要使用与 TiSDK 相同的版本。但是如果你打算继续使用 MQTT,你应该使用 3.2.0 以下的 CloudPush 模块。从 3.2.0 本身开始,Appcelerator 不支持 MQTT。您可以更改 tiApp.xml 文件的模块版本
    • CloudPush 模块低于 3.2.0 ti.cloudpush
    • 请尝试将模块升级到3.x,您可以在tiapp.xml中进行更改。从 tiapp.xml 文件中显示的列表视图中选择模块版本
    • 这也不起作用,但感谢您的尝试。反正我很快就要换城市飞艇了。
    猜你喜欢
    • 1970-01-01
    • 2016-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多