如何在Qt 5.3中启用LocalStorage

问题描述 投票:0回答:2

我尝试过的方法:

QWebSettings* settings = QWebSettings::globalSettings();
settings->setAttribute(QWebSettings::LocalStorageEnabled, true);
auto path = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation);
settings->setOfflineStoragePath(path);

window.localStorage
true
(不是
null
undefined
),但是当我将项目插入本地存储时:

localStorage.setItem("b","isaac");
alert(localStorage["b"]);

发生错误,webkit检查器控制台中的错误消息是:

QuotaExceededError:DOM 异常 22:尝试向存储中添加超出配额的内容。

qt webkit local-storage
2个回答
6
投票

我气愤了一整天,因为应用程序重新启动后就不起作用了。 所以我认为这对某人会有帮助:

QWebSettings* settings = QWebSettings::globalSettings();
settings->setAttribute(QWebSettings::LocalStorageEnabled, true);
auto path = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation);
settings->setOfflineStoragePath(path);
settings->enablePersistentStorage(path);

注意启用持久存储


3
投票

我忘了我已经启用了一个非常重要的开关:

settings->setAttribute(QWebSettings::PrivateBrowsingEnabled,true);

这会将浏览器设置为私有模式并阻止您向 localStorage 插入值。但官方api文档没有提及。

您只需设置禁用切换器即可解决问题:

settings->setAttribute(QWebSettings::PrivateBrowsingEnabled,false);
© www.soinside.com 2019 - 2024. All rights reserved.