Android 用于多个Worklight应用程序的推送适配器

Android 用于多个Worklight应用程序的推送适配器,android,push-notification,ibm-mobilefirst,worklight-adapters,Android,Push Notification,Ibm Mobilefirst,Worklight Adapters,是否可以为同一Worklight项目中的多个应用程序创建一个Worklight推送适配器 如果不可行,我该如何配置我的项目,因为我认为推送通知是通过Android环境中的应用程序名称识别的。因此,推手柄仅适用于第一个应用程序,而不适用于其他应用程序 有什么想法吗?推送通知不是按应用程序名称发送的。你为什么这么想?你在文件里看到了吗 请参见以下主题: 您可以编写非常通用的代码,确保您的订阅对应用程序是唯一的,这样它们就不会重叠并向两个应用程序发送通知,或者使用多个事件源—每个应用程序一个?

是否可以为同一Worklight项目中的多个应用程序创建一个Worklight推送适配器

如果不可行,我该如何配置我的项目,因为我认为推送通知是通过Android环境中的应用程序名称识别的。因此,推手柄仅适用于第一个应用程序,而不适用于其他应用程序


有什么想法吗?

推送通知不是按应用程序名称发送的。你为什么这么想?你在文件里看到了吗

请参见以下主题:


您可以编写非常通用的代码,确保您的订阅对应用程序是唯一的,这样它们就不会重叠并向两个应用程序发送通知,或者使用多个事件源—每个应用程序一个?

您在适配器中声明的实体称为EventSource。任何数量的应用程序都可以订阅此事件源。现在,限制是您只能在订阅推送的应用程序中接收推送通知。例如,如果您使用app1订阅,则只能使用app1接收通知。如果您需要在app2中接收推送通知,则必须单独订阅。但是,没有任何东西阻止您在两个应用程序中使用相同的EventSource(适配器)。

我通过创建两个推送适配器解决了此问题,在每个推送适配器中,我创建了一个事件源

之后,我在同一个Worklight项目中创建了两个应用程序,每个应用程序订阅不同的事件源,但它们都在application-descriptor.xml文件中具有相同的pushSender配置(相同的键和相同的senderId)


请注意,在同一推送适配器中创建2个事件源时,适配器的部署总是失败,因此我为每个事件源创建了一个单独的适配器

关于推送通知的应用程序名,文档中没有提到,但我得到的行为是:我配置了推送通知,并且它工作正常,然后我更改了string.xml文件中的应用程序名,标记“app_Name”。之后,当应用程序打开并且我收到通知时,推句柄被撤销。但是如果应用程序关闭了,我收到一个通知,当我从通知栏点击它时,什么也不会发生(点击会打开应用程序)。这只是因为你在规避应用程序的自然流程;我建议用实际的2个应用程序来验证这一点,而不是那样。实际上,我创建了2个应用程序和2个推送适配器(每一个都有不同的事件源)。当我从第一个适配器调用submit通知过程时,推送由第一个应用程序接收,但对第二个应用程序和第二个推送适配器不起作用。什么不起作用?会发生什么?日志显示了什么?应用程序和适配器之间有什么不同?提供数据日志显示:“无设备订阅”尽管设备存在于Worklight控制台(设备选项卡)中,但如果我使用相同的事件源,推送适配器将如何区分请求是来自app1还是来自app2以处理正确的请求?适配器框架始终知道哪个应用程序请求来自哪个应用程序。这是由Worklight在引擎盖下控制的,您不必担心。