2
respostas

[Projeto] WebView

estou criando uma webview está pronta. porém quando eu faço login em algum site ele não salva a session.Ou seja quando eu desligo o pc ele perde o login,Alguém tem alguma ideía? #include "main.moc"

int main(int argc, char *argv[]) {

QtWebView::initialize();


// QGuiApplication app(argc, argv);

QApplication app(argc, argv); // Inicializar QApplication



//! [0]
QGuiApplication::setApplicationDisplayName(QCoreApplication::translate("main",
                                                                       "QtWebView Example"));

QWebEngineView view;
// WebPage page;

// // Configurar a página da web para ser usada na visualização da web
// view.setPage(&page);

QCommandLineParser parser;
QCoreApplication::setApplicationVersion(QT_VERSION_STR);
parser.setApplicationDescription(QGuiApplication::applicationDisplayName());
parser.addHelpOption();
parser.addVersionOption();
parser.addPositionalArgument("url", "The initial URL to open.");
QStringList arguments = app.arguments();
parser.process(arguments);
const QString initialUrl = parser.positionalArguments().isEmpty() ?
                               QStringLiteral("https://google.com") : parser.positionalArguments().first();

QWebEngineProfile profile;
// Configure profile as needed

QQmlApplicationEngine engine;



QQmlContext *context = engine.rootContext();

context->setContextProperty(QStringLiteral("utils"), new Utils(&engine));
context->setContextProperty(QStringLiteral("initialUrl"),
                            Utils::fromUserInput(initialUrl));
QRect geometry = QGuiApplication::primaryScreen()->availableGeometry();
if (!QGuiApplication::styleHints()->showIsFullScreen()) {
    const QSize size = geometry.size() * 4 / 5;
    const QSize offset = (geometry.size() - size) / 2;
    const QPoint pos = geometry.topLeft() + QPoint(offset.width(), offset.height());
    geometry = QRect(pos, size);
}

// Instalação do filtro de eventos para capturar eventos de teclado
KeyPressFilter keyPressFilter;
app.installEventFilter(&keyPressFilter);


context->setContextProperty(QStringLiteral("initialX"), geometry.x());
context->setContextProperty(QStringLiteral("initialY"), geometry.y());
context->setContextProperty(QStringLiteral("initialWidth"), geometry.width());
context->setContextProperty(QStringLiteral("initialHeight"), geometry.height());


engine.load(QUrl(QStringLiteral("qrc:/main.qml")));


if (engine.rootObjects().isEmpty())
    return -1;


return app.exec();

}

2 respostas

Oii, Igor! Tudo bem?

As informações de sessão, que incluem cookies e dados locais, não foram armazenadas de forma persistente entre as sessões do aplicativo. No Qt, você pode resolver isso configurando o QWebEngineProfile para usar um diretório específico para armazenar esses dados.

Aqui está um exemplo, para que você possa incluir no seu projeto:

QWebEngineProfile *profile = new QWebEngineProfile("MyProfile", &app);
profile->setPersistentStoragePath("caminho/para/diretorio/persistente");

QWebEnginePage *page = new QWebEnginePage(profile, &app);
view.setPage(page);

No código acima, basta substituir "caminho/para/diretorio/persistente" pelo caminho do diretório onde você deseja armazenar os dados da sessão. Isso fará com que os cookies e outros dados sejam salvos nesse diretório, e eles estarão disponíveis mesmo após reiniciar o app ou o PC.

Lembrando que como o projeto não é dos nossos cursos e nós não temos acesso, fica um pouquinho mais difícil dar uma resposta cirúrgica, tá bem? =)

Se outra dúvida surgir, estamos aqui.

Abraços e bons estudos!

Obrigado Maria vou testar aqui

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software