在Firefox桌面和Firefox Android之间传输/同步WebExtension数据

lul*_*bee 9 firefox synchronization firefox-addon-webextensions firefox-android

我正在制作一个跟踪用户列表的WebExtension(适用于Firefox).用户可以从列表中添加/删除元素,或者将元素从一个列表切换到另一个列表,这意味着扩展需要使用最新版本的列表.

因此,要在桌面和Android上使用,扩展需要传输/同步一些数据(可以进行字符串化).

我正在尝试为用户找到一种尽可能简单的方法,而不使用外部服务.

理想的解决方案(对用户完全透明)将是使用storage.sync,但尽管它在设备之间同步,但它(尚未)在普通Firefox(桌面)和Firefox for Android之间同步(实现跟踪在https:/ /bugzilla.mozilla.org/show_bug.cgi?id=1316442).

另一个解决方案是使用bookmarksAPI,但Firefox for Android(https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/bookmarks)也不支持它.

这让我有两个解决方案,我可以看到:

  1. 让用户向/从本地文件保存/检索数据,这意味着他们需要将文件复制到其他设备(这就是我现在所拥有的).

  2. 保存/从第三方服务器检索数据(这意味着我必须创建一个服务器,并让用户在其上创建一个帐户).

我还缺少其他任何解决方案吗?

Bla*_*ise 1

根据此支持文档,以下数据从 Android 同步:书签、历史记录、打开的选项卡、表单信息和密码。

此图表显示 Android 支持哪些 Web 扩展 API

  • 书签:Android 上还没有 API
  • 历史:Android 上还没有 API
  • 选项卡:支持 API。应该偶尔或一次性同步的扩展可以实现手动过程(这对于OP来说是一个无用的流程,因为问题描述了应该经常发生同步的流程):
    • 打开带有 Web 扩展或数据 URL 的选项卡,并在查询参数中包含同步数据。在此选项卡中,显示一些文本,要求用户在其他设备上打开 Firefox。记录您使用 sessionStorage 在本地打开此选项卡的情况。
    • 当在其他设备上打开选项卡并且缺少 sessionStorage 时,从查询参数获取同步数据并显示一条消息,表明数据已同步并且现在可以关闭两个选项卡。
  • 表单信息:尚无API
  • 密码:尚无 API

此列表中未提及,但也已同步的是BrowserSettings。它允许覆盖一些已同步的字段(homepageOverridenewTabPageOverride),但这些字段必须在 manifest.json 中定义,因此它们不能是动态的。此外,它可能会干扰正常功能。

结论:等待浏览器支持或选择服务器解决方案。