cew*_*ood 20 javascript api google-chrome sync google-chrome-extension
是否可以通过编程方式检查是否在Google Chrome中配置了Chrome同步?
我问的原因是我正在编写一个依赖于Chrome Sync的Chrome扩展程序,并希望检查/通知用户是否未配置.
在发布此问题之前,我检查了显而易见的地方(Chrome Extension API,StackExchange和Google),但到目前为止我还没有运气.
如果有人有想法/解决方案,我会很感激帮助.
干杯.
Google有一个页面可以查看已同步帐户的状态; 该页面的URL是https://www.google.com/settings/chrome/sync.你可以做些什么来查看帐户是否已同步使用Google允许扩展的跨域连接打开该状态页面(如果它甚至没有返回200-OK状态未同步)然后你使用一点JavaScript来从该页面中提取"上次同步"日期; 之后,仅仅使用保存chrome.storage.sync的API,然后几秒钟后再次检查"上次同步"的日期,如果改变了,那么你可以99%肯定是同步的(或者,如果你想覆盖慢同步的情况下,只需要使用setInterval到等待它).
您可以使用以下JavaScript来提取日期:
NodeList.prototype.forEach = Array.prototype.forEach;
var date = null;
document.querySelectorAll("*").forEach(function(ele){
var matches = ele.innerText.match(/\b\d{4}\s\d{2}:\d{2}:\d{2}\b.*/);
if (matches) date = matches[0];
});
Run Code Online (Sandbox Code Playgroud)
第一次保存该值
chrome.storage.sync.set({date: date});
Run Code Online (Sandbox Code Playgroud)
第二次你应该比较两个值添加这样的东西:
chrome.storage.sync.get("date", function (old) {
if (date !== old) {
// Is sync!
} else {
// not sync.
}
});
Run Code Online (Sandbox Code Playgroud)
祝好运.
我没有测试过这个,这只是一个想法。和你一样,我也没有找到任何文档。
https://developer.chrome.com/extensions/storage.html上的文档指出:
即使用户禁用同步,storage.sync 仍然可以工作。在这种情况下,它的行为与 storage.local 相同。
然而,storage.sync和storage.local有不同的QUOTA_BYTES限制;分别为 102,400 和 5,242,880。根据文档;
导致超出此限制的更新会立即失败并设置runtime.lastError。
那么,如果您尝试将一个 200,000 字节的对象设置到 中,会发生什么情况storage.sync?如果启用了同步,它应该会失败 - 但如果禁用了同步,并且因此storage.sync表现得像storage.local,它会成功吗?如果确实成功,那么您可以简单地尝试将一个非常大的对象设置为同步,检查它是否成功,然后将其删除,并根据该对象确定是否启用同步。
| 归档时间: |
|
| 查看次数: |
1565 次 |
| 最近记录: |