如何重置QML WebView
How to reset QML WebView?
外观。以下是最简单的代码:https://www.dropbox.com/s/ctdcgrk0eqgq3a3/webview_test.tar.gz
当你启动这个应用程序时,你会看到白色窗口。点击窗口,你会看到浏览器和推特。再次单击,浏览器将被隐藏并销毁。
所以,请登录推特,然后点击第一个窗口销毁浏览器,然后点击第二个窗口重新创建。你会看到你离开了登录状态。但每次在没有签名用户的情况下打开浏览器时,我都需要该浏览器(即使用户选中了"记住我"复选框(。如何做到这一点?如何将浏览器重置为初始状态?
以下是项目的主要部分:
main.cpp
#include <QApplication>
#include <QQuickView>
#include "container.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Container c;
c.start();
return a.exec();
}
容器.cpp
#include "container.h"
#include <QDebug>
#include <QQuickItem>
#include <QQmlContext>
Container::Container(QObject *parent) :
QObject(parent)
{
mainFile = new QQuickView();
browserExists = false;
}
Container::~Container()
{
delete mainFile;
}
void Container::start()
{
mainFile->setSource(QUrl("qrc:/main.qml"));
connect(mainFile->rootObject(), SIGNAL(click()), this, SLOT(mainFileClicked()));
mainFile->show();
}
void Container::mainFileClicked()
{
if(!browserExists)
{
browser = new QQuickView();
browser->setSource(QUrl("qrc:/browser.qml"));
browser->rootContext()->setContextProperty("address", "http://twitter.com");
browser->show();
browserExists = true;
}
else
{
browser->hide();
delete browser;
browserExists = false;
}
}
main.qml
import QtQuick 2.0
Rectangle {
width: 320
height: 240
signal click();
MouseArea {
anchors.fill: parent
onClicked:
{
click()
}
}
}
browser.qml
import QtQuick 2.0
import QtWebKit 3.0
import QtWebKit.experimental 1.0
Item {
width: 640
height: 480
signal closeWindow();
WebView
{
anchors.fill: parent
url: address
experimental.preferences.privateBrowsingEnabled: true
}
}
我认为,现在这个答案是不必要的,但我在Sailfish应用程序中的嵌入式QML WebView也有同样的问题。私人浏览仍然不起作用,所以我发现了肮脏的黑客:从fs中删除缓存。在旗鱼中,它存储在~/.local/share/app-name/.QtWebKit中。因此,这种肮脏的解决方案使我有可能每次使用一个新状态的网络视图。
相关文章:
- 从C++实例化QML
- 使用CMake创建QML插件
- QT通过C++添加映射QML项目
- 如何在没有信号的情况下从C++执行QML插槽
- QML按钮点击功能执行顺序
- QML:修改在不同QML文件(而非main.QML)中定义的子对象的属性
- 建议在运行时将带有类实例的列表从c++导入qml
- Qt Quick-如何仅从c++代码与qml属性交互
- 如何将带有自定义对象的容器从C++传递到QML
- QML 使用带有参数C++函数
- 最佳做法是从另一个线程访问 qml 中的Q_PROPERTY
- 如何从C++端挂接到 QML 项的 onClick 事件
- 在 qml 中使用 Q_ENUM 和 Q_PROPERTY 作为枚举类
- 从 QML 中清除 WebView 缓存
- Access QML WebView from C++
- 什么是可铸造的QML WebView
- QML:如何创建半透明/半透明的WebView元素
- QML WebView 组件尚未准备就绪
- 如何重置QML WebView
- webView QML中的身份验证