仅限Android上的Appcelerator推送通知错误

时间:2014-05-12 14:30:14

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

Titanium版本:3.1.3。

我仍在使用MQTT for Android,一切都运行良好,直到几个星期前(可能直到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"
    }, .....
`

“参数不能为空”似乎是一个gcm响应代码。我尝试删除gcm的apiKey和发送者ID并仅保存应用程序包名称(MQTT),但后来我得到错误gcm_apiKey为null。如果我在tiapp.xml中定义mqtt,我认为push不使用gcm?顺便说一句,在iOS上一切正常,但当然没有使用mqtt。

1 个答案:

答案 0 :(得分:0)

检查以下

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

  2. 您应该指定&#39; android&#39;订阅推送通知时的类型。 (在GCM的情况下,你必须使用&#39; gcm&#39;)

  3. 然而 Appcelerator已从2014年3月15日起删除了MQTT支持。。 因此,最新的CloudPush模块将不再支持MQTT。 请参见下面的屏幕截图您可以在ACS服务器上看到此信息。您需要将应用程序升级到GCM以解决问题,并且升级到GCM非常简单。我之前已经做过了。我建议您将应用升级到GCM支持。

    Screenshot

    另请访问Appcelerator博客中的Android Push Notification: Deprecating MQTT in favor of GCM