c++ - 没有互联网弹出窗口 Qt 和 QML(移动设备)

标签 c++ qt mobile popup qml

我的程序使用 QtNetwork 从互联网上下载东西。

在 int main() 中调用

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QmlApplicationViewer viewer;

    QNetworkConfigurationManager manager;
    QNetworkConfiguration cfg = manager.defaultConfiguration();
    QNetworkSession* session = new QNetworkSession(cfg);
    session->setSessionProperty("ConnectInBackground", true);
    session->open();

    /*some registering types*/

    viewer.setOrientation(QmlApplicationViewer::ScreenOrientationAuto);
    viewer.setMainQmlFile(QLatin1String("qml/maelyrica/main.qml"));
    viewer.showFullScreen();

    return app.exec();
}

然后,在一个成员函数中,大量的封装,大量的调用其他的成员函数又调用其他的成员函数,这样的代码是这样用的:

QNetworkReply::NetworkError lyricsDownloader::download(const QString& a, const QString& t)
{
QNetworkAccessManager nam;
QNetworkReply * reply;
QUrl url = toProviderCode(a, t);
forever
{
    reply = nam.get(QNetworkRequest(url));
    QEventLoop downloadLoop;
    connect(reply, SIGNAL(finished()), &downloadLoop, SLOT(quit()));
    downloadLoop.exec();
    url = reply->attribute(QNetworkRequest::RedirectionTargetAttribute).toUrl();
    if (url.isEmpty()) break; // break when no redirect, when redirect do it again with new url
}

lyrics_qstr = reply->readAll();

//qDebug() << lyrics_qstr;

return reply->error();
}

这应该会在诺基亚 N9 或诺基亚 N900 等移动设备上显示互联网弹出窗口,即用户必须选择互联网连接,除非他已经连接。但它没有显示。

我做错了什么?

提前致谢

最佳答案

您已将“ConnectInBackground”设置为 true。

“在调用 open() 之前将此属性设置为 true 意味着已进行连接尝试,但如果无法建立连接,则不会咨询用户并要求其选择合适的连接。默认情况下未设置此属性,并且对它的支持取决于平台。”

关于c++ - 没有互联网弹出窗口 Qt 和 QML(移动设备),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12439379/

相关文章:

C++ - 如何创建一个 vector ,其中每个元素都是来自输入字符串的单个数字?

qt - 信号发射结构

cocoa - Qt 中的 OS X 透明面板?

c++ - 如何包装 posix_memalign(在 mac 上编译旧代码库)?

c++ - 为什么这段代码在第31行显示cout << x1 << x2;

c++ - 如何使用 `std::multimap` 或任何其他容器对多个值进行排序?

qt - 用最新的QT编译libwebsocket

CSS 媒体查询来检测设备类型而不考虑大小

android - 如何根据 Flutter 中的按钮单击上下移动一个小部件?

blackberry - 您在 BlackBerry AppWorld 上启动应用程序的经验?