我正在开发一个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);
}
});
}
使用有效数据调用此函数后,任何内容都不会保存在本地存储中。查看我的应用程序的开发人员工具窗口中的“资源”选项卡,我在“本地存储”部分(也未在“会话存储”中)中看不到任何条目。 当然,尝试检索此数据失败,因为找不到数据。 这应该是直截了当的,但对我来说根本不起作用。 我在开发者模式下本地运行应用程序。
在这里寻找其他问题我没有看到这样的情况。
知道它为什么不起作用?我错过了什么吗?
由于
答案 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....
}
希望这有帮助。