【问题标题】:Push notifications on Android 5 not delivered when app in background (Titanium) - But it does in foreground当应用程序在后台(钛)时,Android 5 上的推送通知未发送 - 但它在前台发送
【发布时间】:2016-07-12 09:57:31
【问题描述】:

我在 Android 上使用 Urban Airship 来接收通知。 Appcelerator 模块很旧(3 年前)https://github.com/appcelerator-modules/ti.urbanairship,我正在使用这个 fork:https://github.com/rdking/ti.urbanairship/tree/master/android

使用 rdking 版本,我可以在 Android 5 上收到通知,但只有在应用打开时(前台)。如果我打开另一个应用程序或将其关闭(将其置于后台),它将无法获取。

我正在使用 Titanium SDK 5.1.2.GA(应用程序和模块),使用 NDK r10e

构建模块

platforms/android-13 和插件/addon-google_apis-google-13

(不确定我应该使用哪个版本,是否有问题。)

我想我可能缺少 Android Manifest 上的一些配置。 通知在 Android

提前致谢 =)

【问题讨论】:

  • 应用后台时没有收到通知是什么意思?通知是否仍显示在通知中心?还是您没有收到推送通知?
  • 我根本没有收到通知 =/
  • 推送进来时是否看到任何有用的错误消息? UA 是否记录收到的推送?我对钛不太熟悉,但我可以帮助修补模块。
  • 我昨天在这方面取得了一些进展。如果应用程序在后台运行,模块会收到通知(我有它的日志),但它不会显示在设备的通知中心。问题是应用程序何时关闭。如果应用程序关闭,我根本不会收到通知 =/
  • 我认为它必须在模块被初始化的地方做。 Urban Airship 需要在 Application.oncreate 期间初始化,以便在收到推送时准备就绪。我不知道这只会在 Android 5+ 上发生。看起来很难在应用程序中挂钩起飞,所以我会推荐使用 Autopilot。示例 - github.com/urbanairship/phonegap-ua-push/blob/master/src/….

标签: android push-notification android-5.0-lollipop appcelerator urbanairship.com


【解决方案1】:

更新:Urban Airship 现在提供titanium module

【讨论】:

  • 非常感谢@ralepinski ...我开始使用自动驾驶仪,但据我所知,该模块已经在应用程序创建中调用起飞。我发现这个docs.appcelerator.com/platform/latest/#!/guide/… 似乎完全一样,对吧?另一件事,我在应用关闭的情况下收到通知,但通知未显示在设备的状态栏(通知中心)上 =/ 我可以启动应用,但不显示简单消息
  • 感谢您的分叉,我已经尝试过,但效果不佳 =/ 我的意思是,我收到通知(我可以从模块代码强制打开应用程序)但看不到手机状态栏上的任何消息 - 在 3 台设备上尝试过。我在您的分叉版本中收到此消息:“UALib:无法启动定位服务。检查定位服务是否已添加到清单中。”你认为可能是什么?非常感谢您为此付出的努力 =)
  • 我想我必须比我想要的更熟悉 TI。位置服务日志来自github.com/rlepinski/ti.urbanairship/blob/master/android/…,不应更改接收通知的方式。让我们将其移至 fork 上的 github 问题。当您这样做时,请在后台发布您收到的推送的详细日志。您可以通过在 airship 配置属性中设置 developmentLogLevel = VERBOSEproductionLogLevel = VERBOSE 来启用详细日志记录。确保在这样做时不要发布任何应用程序密钥/秘密。
  • 嗨 ralepinski,非常感谢您的帮助!昨天我们设法使该模块在 Android 上完美运行,但使用的是 UA SDK 6.0.2。如果我们将它更新到 6.4 或 7.0,它会使应用程序崩溃。这是日志:s28.postimg.org/7ochitfxp/… 它说在 com.urbanairship.push 中找不到 NotificationActionButtonGroupFactory。事实上,在文档中它没有显示这个类,所以似乎是 UA .jar 文件中的东西而不是模块本身 =/
  • 这是我们试图解决的另一件事。是否可以在运行时更改通知应用程序图标和背景颜色?还是只有在服用时才有可能?我在这个线程stackoverflow.com/questions/10666022/… 上看到了你的答案,它只适用于我们的模块。但是动态更改它会很好。谢谢!
【解决方案2】:

我最近与 UA 的代表交谈,他们告诉我他们不再正式支持 Titanium。我正在使用 5.2.0GA 在 Android M 设备上运行,而 UA 不能在所有设备上运行。我目前正在切换到 Appcelerator 的 Arrow 系统以获取通知。到目前为止,它运行顺利。他们使用自己的模块,称为 Ti.CloudPush for android。我会建议检查一下。

【讨论】:

  • 我知道 Urban Airshit 不再支持 Titanium,但如果你明白我的意思,我不知道为什么 Titanium 不支持 UA。我想切换到另一个提供商,但我在商店中有 100 多个应用程序,无法像那样轻松切换 =/ 我正在努力重新编译模块,但我遇到了一些错误,例如 Runtime disposed, cannot fire event 'disposehandle'
  • 您是否联系过 UA 并寻求他们的帮助或联系 Appcelerator?
【解决方案3】:

Urban Airship 模块在 Android Lollipop 及更高版本中存在问题。该模块未更新,无法保证何时更新。切换到 Appcelerator 的 Arrow 系统进行通知并使用 Ti.CloudPush 模块是目前最好的主意。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-18
    • 2015-07-22
    • 2018-08-04
    • 1970-01-01
    • 1970-01-01
    • 2018-03-30
    相关资源
    最近更新 更多