我的搜索没有任何具体的结果。我的扩展使用谷歌的文件选择器,允许用户浏览他们的表,并选择一个所需的文件来写一些数据,其中manifest v3因一些GAPI限制而中断。除非我错过了一些明显的东西,否则似乎没有一个简单的解决方案或方法可以将此迁移到v3—它似乎只是不被允许。
我不是在问是否有一种方法可以做到他们打算不可能做到的事情(尽管我怀疑谷歌是否存在这样的事情),但我乐观地希望,也许有一些hack/烦人的变通方法仍然符合他们的规则。如果我必须允许他们手动设置表单URL,我会。我只是想避开它。
任何提示或建议都将不胜感激。
您可能需要自己测试以确保没有奇怪的行为,但Google在其迁移指南中对此有一些建议:
在Manifest V3中,扩展的所有逻辑必须包含在扩展中。您无法再加载和执行远程托管文件。根据您的用例和远程托管的原因,有许多可供选择的方法。以下是可以考虑的方法:
配置驱动特性和逻辑
在这种方法中,您的扩展在运行时加载远程配置(例如JSON文件)并在本地缓存配置。然后扩展使用这个缓存配置来决定哪些特性使。
使用远程服务外部化逻辑
考虑将应用程序逻辑从扩展迁移到扩展可以调用的远程web服务。(本质上是一种消息传递形式。)这为您提供了保持代码私有和按需更改代码的能力,同时避免了重新提交到Chrome Web Store的额外开销。
捆绑第三方库
如果你使用的是流行的框架,如React或Bootstrap,你可以下载这些压缩文件,将它们添加到你的项目中,并在本地导入。
对于你的情况,选项#3似乎是最简单的。看看Google Picker API文档,它只使用了两个相对较小的脚本文件,https://apis.google.com/js/api.js
和https://accounts.google.com/gsi/client
。你可以尝试在Chrome扩展中捆绑这些方法,并在本地调用这些方法。