我目前正在使用 Qt Quick Controls 2 开发一个适用于 Android 和 IOS 的应用程序,该应用程序可以登录。帐户凭据将存储到外部 SQL 数据库中。我已经弄清楚如何与数据库交互,但我无法弄清楚如何在 Android 和 IOS 的 Qt 中使用会话,以便用户不需要每次都键入登录凭据。
一种可能的方法是将凭据存储到手机本地的文件中,然后在每次启动应用程序时访问该文件。但是,我不确定这是否是最好和最安全的方法。
Thanks.
Q设置类用于状态管理。 QSettings 信息通常存储在 Windows 上的系统注册表中,以及 macOS 和 iOS 上的属性列表文件中。这是使用 QSettings 存储/检索会话参数的原始示例代码..您可以扩展以包括所需的会话登录管理场景:
main.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());
}
您还可以使用以下命令访问 INI 和 PLIST 配置文件Q设置class,对于 Android,可以考虑在构建期间必须复制 INI 文件(存储在 res 文件夹中并将其包含在 .pro 中)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)