gpt4 book ai didi

android - Android 和 IOS 上的 Qt session 管理

转载 作者:行者123 更新时间:2023-11-30 05:05:51 25 4
gpt4 key购买 nike

我目前正在使用 Qt Quick Controls 2 开发适用于 Android 和 IOS 的应用程序,该应用程序将具有登录功能。帐户凭据将存储到外部 SQL 数据库中。我已经弄清楚如何与数据库交互,但我无法弄清楚如何在 Qt for Android 和 IOS 中使用 session ,这样用户就不需要每次都输入登录凭据。

一种可能的方法是将凭据存储到手机本地文件中,然后在每次启动应用程序时访问该文件。但是,我不确定这是否是最好和最安全的方法。

谢谢。

最佳答案

QSettings 类用于状态管理。 QSettings 信息通常存储在 Windows 的系统注册表中,以及 macOS 和 iOS 的属性列表文件中。这是使用 QSettings 存储/检索 session 参数的原始示例代码。您可以扩展以包含所需的 session 登录管理方案:

主要.cpp

int main( int argc, char ** argv ) {
QApplication app( argc, argv );
app.setOrganizationName("myOrg");
app.setOrganizationDomain("myOrg.net");
app.setApplicationName("qsettings-test");
MyMainWindow mw;
mw.show();
return app.exec();
}

然后在你的源.cpp中

void MyMainWindow::readSettings() {
QSettings settings;
QString user = settings.value("UserName");
int lifTime = settings.value("sessionLifeTime").toInt();;
QByteArray state = settings.value("state", QByteArray())
.toByteArray();
restoreState(state);
}

// ...... lots of your code

void MyMainWindow::closeEvent(QCloseEvent* event) {
if (maybeSave()) {
writeSettings();
event->accept();
} else {
event->ignore();
}
}


void MyMainWindow::writeSettings() {
/* Save postion/size of main window */
QSettings settings;
settings.setValue("sessionLifeTime", 7);
settings.setValue("UserName", user);
settings.setValue("state", saveState());
}

您还可以使用 QSettings 类访问 INI 和 PLIST 配置文件,对于 Android,这可以被认为是在构建期间必须复制 INI 文件的位置(存储在 res 文件夹中并将其包含在 .pro 中) .

关于android - Android 和 IOS 上的 Qt session 管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48168909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com