所以,我工作的公司正在开发一个使用Qtwebkit 2.3.5作为其前端解决方案的机顶盒。
我需要尝试让第三方VOD与系统一起工作,但我在第一步就遇到了问题。
VOD平台(我无法访问其源代码)使用localStorage来保留一些参数,显然Qtwebkit 2.3.5没有实现它。
我的第一个想法是使用localStorage Polyfill,但在尝试了几个并且无处可去后我开始调查。
默认情况下,窗口全局对象中的localStorage属性设置为null,系统不允许我更改它。
这是我尝试的代码:
window.testStorage = "TEST_st";
console.log(window.localStorage);
console.log(window.localStorage = "TEST");
console.log(window.localStorage);
console.log(window.testStorage);
查看控制台我收到此日志:
空 测试 空值 TEST_st
因此,我可以向testStorage显示的窗口对象添加属性,但我无法更改localStorage,我需要能够。
有谁知道为什么会这样?
而且,我该如何解决?我能修改localStorage属性吗?
甚至将它映射到sessionStorage(这个已经实现)将在这一点上帮助我。
非常感谢任何帮助。
谢谢。
答案 0 :(得分:0)
所以,只是回答我自己的问题,也许可以帮助别人。
window.localStorage功能在QtWebkit 2.3.5上实现,但默认情况下已禁用。
你必须致电:
QWebSettings::globalSettings()->enablePersistentStorage();
在创建QWebPage或QWebView实例之前。
重新编译并重新启动。
之后一切正常。