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



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

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

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

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

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

这给我留下了两个我可以看到的解决方案:

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

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

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

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

此图表显示了Android上支持哪些web扩展API:

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

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

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

最新更新