Chrome应用不会将数据保存到本地存储

时间:2014-11-16 11:02:22

标签: google-chrome storage local

我正在开发一个Chrome应用程序,需要将一些数据保存到本地存储并在之后检索它。

我按照Chrome存储API上的指南进行操作 https://developer.chrome.com/extensions/storage

并有一个简单的代码来保存数据:

function saveCurrentPort()
{

    chrome.storage.local.set({'last_port': connectedPortPath}, function() {
              // Notify that we saved.
              writeConsole('JS last port saved:' + connectedPortPath );
              if (chrome.extension.lastError) {
                    alert('JS An error occurred: ' + chrome.extension.lastError.message);
                }
            });

}

使用有效数据调用此函数后,任何内容都不会保存在本地存储中。查看我的应用程序的开发人员工具窗口中的“资源”选项卡,我在“本地存储”部分(也未在“会话存储”中)中看不到任何条目。 当然,尝试检索此数据失败,因为找不到数据。 这应该是直截了当的,但对我来说根本不起作用。 我在开发者模式下本地运行应用程序。

在这里寻找其他问题我没有看到这样的情况。

知道它为什么不起作用?我错过了什么吗?

由于

2 个答案:

答案 0 :(得分:0)

您是否声明了"存储"对manifest.json的许可?

   {
        "name": "My extension",
        ...
        "permissions": [
          "storage"
        ],
        ...
      }

另外,Chrome应用不允许alert()。 我认为肯定会有更多错误。你可能需要先修复它。

答案 1 :(得分:0)

除了权限,您需要输入'last_port'的值

var last_port_var= 'last_port';

var portObj= {};

portObj[last_port_var] = connectedPortPath;

现在按对象设置值:

chrome.storage.local.set(portObj, function() {
     //code goes here....
}

希望这有帮助。