【问题标题】:Running javascript function on background while receiving push notification?接收推送通知时在后台运行javascript函数?
【发布时间】:2015-05-29 12:52:05
【问题描述】:

我知道以前可能有人问过这个问题,但不是在推送通知的上下文中。

我正在使用 Ionic/Cordova 开发一个应用程序,该应用程序向客户发送推送通知,通常是关于供他们观看的新视频消息。视频不会流式传输,而是传输到客户端(不是我的电话),所以我想实现一些后台 javascript 函数,以便在收到推送时将视频存储在客户端。

我看过网络工作者和多线程,但它需要客户端运行。 javascript 代码有一个事件监听器,用于接收推送时,但当然它不会在应用程序打开之前执行。

所以我的问题是,这有可能吗?我将不胜感激有关此问题的任何建议,谢谢!

【问题讨论】:

  • "当然,在打开应用程序之前它不会被执行。" - 也许我读错了:你是想将视频推送给没有打开应用程序的客户吗?
  • 您说得对,先生,这是客户的要求之一,他拒绝考虑流式传输^_^
  • 我可能错了,但我不确定您是否可以在不编写本机代码的情况下使用 cordova 实现这一点...

标签: javascript multithreading cordova push-notification


【解决方案1】:

我已经在我的应用程序中使用信号器和推送通知进行了此操作。我的应用程序。是一个聊天应用。客户端 X 可以向客户端 Y 发送带有图片或视频的富文本消息。

客户端X发送消息时,调用signalr Server,Server将消息保存在Server sql中,并将图片或视频保存在Web服务器中。

如果客户端 Y 离线,它将在下次在线时收到消息。如果客户端 Y 已经在线:

案例1:在线但在前台:signalr 服务器调用客户端Y JavaScript 函数更新屏幕和本地存储,客户端Y 立即看到消息和图片。 (我也播放声音)

案例2:在线但在后台或手机处于屏幕安全模式:signalr Server调用客户端Y JavaScript函数更新屏幕和本地存储,播放另一个声音。然后也向客户端 Y 发送推送通知!这样当客户端 Y 看到这个通知时,它就会打开应用程序。并在本地存储中查看消息。 (就像 Whatsapp)

【讨论】:

  • 嗯,有点不同,在我的情况下,视频是在收到通知之前存储在本地的!
  • 是的,它有所不同,但感谢您的想法,事情是我正在开发的应用程序很可能会关闭(可能直到推送通知),所以我需要想出一个方法在推送通知之前向客户端发送文件我猜......但是你在那里所做的真的很聪明。 :)
  • 见我上面的回答。 '如果客户端 Y 离线' 实际上意味着应用程序已关闭!所以每次重新打开应用程序时,我都会先阅读来自服务器的最新 10 条消息,然后再显示屏幕。当然,我有一个按钮供用户阅读早期的历史消息。
  • 对不起,我可能看错了。 :) 那么你会从网络服务器流式传输数据吗?这对我的客户来说是不可能的,因为这里会同时涉及很多流量......
  • 哦!我知道了!我通常有图片而不是视频!如果您的客户始终处于离线状态,那将无法解决您的问题!
猜你喜欢
  • 2013-01-14
  • 1970-01-01
  • 1970-01-01
  • 2014-12-16
  • 1970-01-01
  • 1970-01-01
  • 2014-10-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多