首页 > 解决方案 > chrome 扩展 chrome.storage.local 默认设置

问题描述

我正在为我的工作场所开发 Chrome 扩展程序,并且在安装时使用事件 chrome.runtime.onInstalled 在 chrome.storage.local 中创建了许多默认设置。

但是,我很确定这意味着每当我推送新版本的扩展程序时,用户的设置都会被默认设置覆盖。我发现 Object.assign 方法看起来可以解决这个问题,但我无法弄清楚如何在不诉诸实际更新扩展的情况下测试我的代码。

卸载扩展的解压版本似乎会导致其 chrome.storage.local 密钥被破坏(我可能错了),所以我无法在重新安装时验证它是否会保留我之前更改的任何设置。

我当前的“onInstalled”代码如下所示:

chrome.runtime.onInstalled.addListener(function() {
    chrome.storage.local.get(["options"], function(r){

        let defaults = {
            option1: 2000,
            option2: true,
            option3: false,
            option4: ""
        },
        current = r.options,
        newSettings = Object.assign(defaults,current);

        chrome.storage.local.set({
            options: newSettings
        });
    });
});

一个后续问题:是否有必要为我的选项命名,或者是否设置了 chrome.storage.local 以便不同扩展名中的同名设置不会相互干扰?

标签: google-chromegoogle-chrome-extensiongoogle-chrome-storage

解决方案


推荐阅读