在Firefox OS中广播事件

3

我在想是否有一种方法让Firefox OS应用程序向所有其他应用程序广播事件,并且对感兴趣的应用程序来说,挂接该事件并触发相应的操作。

我心中的一个使用案例示例:相机应用程序广播事件“拍照”,另一个应用程序钩住此事件并对已拍摄的新图片执行某些操作(例如将其上传到服务器)。

2个回答

2
目前在Firefox OS中,没有向所有已打开和/或感兴趣的应用程序广播事件的Web API。
对于您特定的用例,即当相机拍摄新照片时通知应用程序,最好的方法可能是打开DeviceStorage以获取“图片”,并侦听“更改”事件。
这方面的文档可以在以下网址找到:

https://developer.mozilla.org/en-US/docs/Web/API/DeviceStorage

替代方案存在,但功能受到更多限制,并且在较少的发布和上下文中可用: 注意:对于这里的每个示例,您的应用程序必须运行才能正常工作。没有唤醒应用程序以响应特定动作或事件的机制。Web 活动是最接近的用于特定事件应用程序加载的 API。计时器 API 用于非特定的应用程序加载。

另一个解决方案,我从 #gaia 频道的 'dmarcos' 处听到的是滥用设置 API,通过修改和监听设置值来实现。虽然不建议这样做,但过去已经这样做过,以模拟跨应用程序事件。 - Alessandro Cosentino
是的,那是我上面列表中的第三个。有点瑕疵,而且目前还不能用于非认证应用程序 :) - Dietrich Ayala
抱歉,完全一样 :) 我误读了您的第三点。我接受了答案,正是我想要的,谢谢。 - Alessandro Cosentino

0
从这篇文章[1]:
应用程序作者可以构建一个处理一个或多个活动的应用程序。这意味着该应用程序可被另一个应用程序调用,以执行由该活动定义的某些特定操作。例如,假设我们想构建一个照片管理器。它可以被另一个应用程序用于选择照片。作为活动处理程序,我们的应用程序将成为其他应用程序工作流程的一部分。
[1] https://developer.mozilla.org/zh-CN/docs/Web/API/Web_Activities

我知道Web Activities,但我想做的事情无法通过它实现。 - Alessandro Cosentino
据我所知,简单推送通知 API 也可以用于唤醒应用。也许这对于简单的交互来说有些复杂,但这正是 WhatsApp 客户端正在做的(与闹钟 API 混合使用)。 - Cod1ngFree

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接