如何在Appcelerator Titanium Dashboard中配置Android推送通知(GCM)?

时间:2016-04-25 21:27:30

标签: google-cloud-messaging appcelerator appcelerator-titanium

我已尝试按照说明进行操作

Configuring push services for Android devices

但是,这些步骤会在左侧导航栏中提及“点击推送通知”。但他们不存在......

  

在您启用了GCM的情况下创建了Google API项目后,您需要使用您生成的API密钥和发件人ID在Dashboard中更新应用程序的设置页面。

     

使用仪表板为推送通知配置箭头:

     

打开仪表板,然后从“应用程序”下拉菜单中选择您的应用程序。

     

点击左侧导航栏中的推送通知< - MISSING

     

选择Android推送标签。

     

在GCM API密钥字段中输入服务器密钥,在GCM发件人ID字段中输入GCM发件人ID。

这是一张屏幕截图,展示了列出的内容......

There's no 'Push notifications' on the left-side

如果我看到Arrow(我怀疑它可能会被列出),那是空的(我没有使用Arrow - 我认为它是使用声明性XML的替代UI)...

There is nothing under Arrow either

我已经检查过我(Indie)的订阅,它表明我应该能够免费发送最多100万个推送通知..

Subscriptions show push notifications for free

有谁知道我如何将Appcelerator Titanium项目与GCM服务器密钥相关联?

此外,当我查看Googles开发人员控制台时,我的应用程序(在他们的应用程序商店中存在)并未列出,因此我创建了一个名为&的新应用程序 #39; GCM&#39 ;. Appcelerator Titanium似乎证实我需要创建'在应用程序中,我太担心它的名字与实时应用程序相同。 Google开发者控制台'申请与“Google Play”相关。应用?! - 如果有的话?

更新

我刚刚在TiApp.xml中发现,我可以启用一些“云”'设置,这已解锁了推送'菜单 - 所以我觉得现在一切都很好,有人可以确认这是正确的做法并回答我关于Google Play应用程序的相关问题吗?google开发者控制台应用程序?

Enabling

Cloud options

Push notifications now shown!

更新2

我开始收到此错误

  

[错误]:GooglePlayServicesUtil:Google Play服务资源   没找到。检查您的项目配置以确保   资源包括在内。   [INFO]:CloudPush.retrieveDeviceToken错误:INVALID_SENDER

我只是简单地调用它来尝试注册Android推送通知......

CloudPush.retrieveDeviceToken({
                success : function(e) {
                    console.info("CloudPush.retrieveDeviceToken success");
                },
                error : function(e) {
                    console.info("CloudPush.retrieveDeviceToken error:"+e.error);
                }
            });

我尝试过使用和不使用ti.cloud模块(我认为当我点击“启用服务”按钮时它已添加,这意味着我可以看到推送通知'选项卡,但似乎仍然列出ti.cloud模块是否被选出)..

在..

Before removing ti.cloud

问:如何停止Google Play错误并检索设备令牌(奇怪的是我在启用服务之前获得了令牌。

问 - ti.cloud用于接收推送通知,还是ti.cloudpush足够用于此?

2 个答案:

答案 0 :(得分:1)

感谢您提出详细的问题:)让我谈谈您提到的一些事情并澄清我能做些什么。

  

如果我看向箭头(我怀疑它可能会被列出),那就是空的

正如您稍后发现的那样,您必须为您的应用启用平台服务,这将创建一个与您的应用同名的ArrowDB应用。此应用程序将在侧栏中具有推送通知以进行配置。我明确了updated指南的措辞,以明确我们的意思是ArrowDB应用,而不是Titanium应用。

  

(我没有使用Arrow - 我认为它是使用声明性XML的替代UI)...

不要将Arrow与Alloy混淆 - 这是确实使用XML的Titanium的MVC框架。

  

Google Developer Console'申请与“Google Play”相关。应用?! - 如果有的话?

它没有。您甚至可以让多个应用共享同一个GCM发件人。

  

[错误]:GooglePlayServicesUtil:找不到Google Play服务资源。

你用什么来测试?可能没有安装Google Apps的Genymotion模拟器?你需要那个。

  

ti.cloud用于接收推送通知,还是ti.cloudpush足够用于此?

ti.cloud是与ArrowDB通信的模块,订阅频道等。在Android上,您需要ti.cloudpush(或者@Shawn提到另一个模块)来检索设备令牌,在iOS上您可以使用Ti. API。按照this guide执行所有步骤。

答案 1 :(得分:0)

您可以忽略Google Play服务错误,但似乎您的GCM发件人ID和/或API密钥错误。仔细阅读教程并确保放下正确的教程。

如果您使用Appcelerator Cloud Service发送推送通知,则需要ti.cloud来注册设备。

要获取设备令牌并接收推送通知,请使用ti.cloudpush。您可以使用其他模块代替ti.cloudpush。