C++ 如何重置QML WebView?
看起来。下面是最简单的代码: 启动此应用程序时,您将看到白色窗口。单击窗口,您将看到带有Twitter的浏览器。再次单击,浏览器将被隐藏和销毁 所以,请登录Twitter,然后单击第一个窗口破坏浏览器,然后单击第一个窗口再次创建浏览器。您将看到您离开时已登录。但我每次打开浏览器时都需要该浏览器,而不需要签名用户(即使用户选中了“记住我”复选框)。如何做到这一点?如何将浏览器重置为初始状态 以下是项目的主要部分: main.cppC++ 如何重置QML WebView?,c++,qt,webview,webkit,qml,C++,Qt,Webview,Webkit,Qml,看起来。下面是最简单的代码: 启动此应用程序时,您将看到白色窗口。单击窗口,您将看到带有Twitter的浏览器。再次单击,浏览器将被隐藏和销毁 所以,请登录Twitter,然后单击第一个窗口破坏浏览器,然后单击第一个窗口再次创建浏览器。您将看到您离开时已登录。但我每次打开浏览器时都需要该浏览器,而不需要签名用户(即使用户选中了“记住我”复选框)。如何做到这一点?如何将浏览器重置为初始状态 以下是项目的主要部分: main.cpp #include <QApplication> #in
#include <QApplication>
#include <QQuickView>
#include "container.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Container c;
c.start();
return a.exec();
}
#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;
}
}
browser.qml
import QtQuick 2.0
Rectangle {
width: 320
height: 240
signal click();
MouseArea {
anchors.fill: parent
onClicked:
{
click()
}
}
}
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中。所以,这个肮脏的解决方案使我有可能每次使用一个具有新状态的webview