Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Blackberry 使用c++;黑莓瀑布 我使用Json web服务获取响应 当我按下一个按钮时,我必须按到新的页面,当响应成功时,其他人必须举杯——已经注册了 我将得到响应“电子邮件id已注册”或“注册成功” 当我注册成功的时候,我只需要推一个新的页面_Blackberry_Blackberry 10_Blackberry Cascades - Fatal编程技术网

Blackberry 使用c++;黑莓瀑布 我使用Json web服务获取响应 当我按下一个按钮时,我必须按到新的页面,当响应成功时,其他人必须举杯——已经注册了 我将得到响应“电子邮件id已注册”或“注册成功” 当我注册成功的时候,我只需要推一个新的页面

Blackberry 使用c++;黑莓瀑布 我使用Json web服务获取响应 当我按下一个按钮时,我必须按到新的页面,当响应成功时,其他人必须举杯——已经注册了 我将得到响应“电子邮件id已注册”或“注册成功” 当我注册成功的时候,我只需要推一个新的页面,blackberry,blackberry-10,blackberry-cascades,Blackberry,Blackberry 10,Blackberry Cascades,请帮忙 CPP文件 ApplicationUI::ApplicationUI(bb::cascades::Application *app) : QObject(app) , m_succeeded(false) , m_active(false) { QmlDocument *qml = QmlDocument::create("asset:///main.qml").parent(this); qml->setContextP

请帮忙


CPP文件

ApplicationUI::ApplicationUI(bb::cascades::Application *app) :
        QObject(app)
    , m_succeeded(false)
    , m_active(false)
{

    QmlDocument *qml = QmlDocument::create("asset:///main.qml").parent(this);
        qml->setContextProperty("app", this);
        //qml->setContextProperty("second", m_pane);

        m_root = qml->createRootObject<AbstractPane>();

        m_pane = new NavigationPane;
        app->setScene(m_root);
}

void ApplicationUI::sendRequest()
{

    if (m_active)
            return;

    m_active = true;
        emit activeChanged();

    m_succeeded = false;


    QNetworkAccessManager* networkAccessManager = new QNetworkAccessManager(this);

    QNetworkRequest request(m_urllink);

    QNetworkReply* reply = networkAccessManager->get(request);

    bool ok = connect(reply, SIGNAL(finished()), this, SLOT(onFinished()));
    Q_ASSERT(ok);
    Q_UNUSED(ok);
}

void ApplicationUI::onFinished()
{

    m_succeeded = true;

    QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender());

    QString response;

if (reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() == 200)
    {
            JsonDataAccess jda;

            QVariantMap map = jda.loadFromBuffer(reply->readAll()).toMap();

            QVariantList addresses = map["RegistrationResult"].toList();

            qDebug() <<"Full Result is = "<<map["RegistrationResult"].toString();

            QString m_temperature;
            QString result;


            result = map["RegistrationResult"].toString();
            m_temperature=result.section(':', 0, 0);

            m_urlResult = result;
            emit urlResultChanged();
            qDebug()<<m_urlResult;
            qDebug()<<"\n\n\n";
            if(result == "EMAIL ID ALREADY EXISTS")
            {

                        qDebug() << " New Registration Result is " <<m_temperature;
                        qDebug() <<map["RegistrationResult"].toString();

            }

            else if(result != "EMAIL ID ALREADY EXISTS")
            {

                        QString empid;
                        QString empid_no;

                        QString::SectionFlag flag = QString::SectionSkipEmpty;

                        result = map["RegistrationResult"].toString();
                        //empid=m_temperature.section(':', 1, 1);
                        empid_no = map["RegistrationResult"].toString();;
                        empid_no=empid_no.section(':', 2, 2);
                        qDebug()<<"Emd ID = "<<empid_no;
                        qDebug()<<"Company ID"<<result.section(':', 4, 4);

                       QmlDocument *qml = QmlDocument::create("asset:///second.qml").parent(this);
                       Page *new_Page = qml->createRootObject<Page>();
                       m_pane->push(new_Page);
                              **?????????????????????????????**

            }
试试这个:

在main.qml名称中,为navigationpane指定一个objectname,如:

NavigationPane {
id: navigation
objectName: "mynavigation"
在applicationui.cpp构造函数中更改以下行:

 m_root = qml->createRootObject<AbstractPane>();

    m_pane = m_root->findChild<NavigationPane*>("mynavigation");
m_root=qml->createRootObject();
m_pane=m_root->findChild(“mynavigation”);
在构造second.qml后也更改这些行:

   QmlDocument *qml = QmlDocument::create("asset:///second.qml").parent(this);
               qml->setContextProperty("app", this);  


Page *new_Page = qml->createRootObject<Page>();  
m_pane->push(new_Page);
QmlDocument*qml=QmlDocument::create(“asset:///second.qml)母公司(本公司);
qml->setContextProperty(“应用程序”,此);
Page*new_Page=qml->createRootObject();
m_窗格->推送(新建页面);
CPP文件:

    ApplicationUI::ApplicationUI(bb::cascades::Application *app) :
        QObject(app)
    , m_succeeded(false)
    , m_active(false)
{

    QmlDocument *qml = QmlDocument::create("asset:///main.qml").parent(this);
        qml->setContextProperty("app", this);
        //qml->setContextProperty("second", m_pane);

        m_root = qml->createRootObject<AbstractPane>();

       m_pane = m_root->findChild<NavigationPane*>("mynavigation"); //  changed
        app->setScene(m_root);
}

void ApplicationUI::sendRequest()
{

    if (m_active)
            return;

    m_active = true;
        emit activeChanged();

    m_succeeded = false;


    QNetworkAccessManager* networkAccessManager = new QNetworkAccessManager(this);

    QNetworkRequest request(m_urllink);

    QNetworkReply* reply = networkAccessManager->get(request);

    bool ok = connect(reply, SIGNAL(finished()), this, SLOT(onFinished()));
    Q_ASSERT(ok);
    Q_UNUSED(ok);
}

void ApplicationUI::onFinished()
{

    m_succeeded = true;

    QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender());

    QString response;

if (reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() == 200)
    {
            JsonDataAccess jda;

            QVariantMap map = jda.loadFromBuffer(reply->readAll()).toMap();

            QVariantList addresses = map["RegistrationResult"].toList();

            qDebug() <<"Full Result is = "<<map["RegistrationResult"].toString();

            QString m_temperature;
            QString result;


            result = map["RegistrationResult"].toString();
            m_temperature=result.section(':', 0, 0);

            m_urlResult = result;
            emit urlResultChanged();
            qDebug()<<m_urlResult;
            qDebug()<<"\n\n\n";
            if(result == "EMAIL ID ALREADY EXISTS")
            {

                        qDebug() << " New Registration Result is " <<m_temperature;
                        qDebug() <<map["RegistrationResult"].toString();

            }

            else if(result != "EMAIL ID ALREADY EXISTS")
            {

                        QString empid;
                        QString empid_no;

                        QString::SectionFlag flag = QString::SectionSkipEmpty;

                        result = map["RegistrationResult"].toString();
                        //empid=m_temperature.section(':', 1, 1);
                        empid_no = map["RegistrationResult"].toString();;
                        empid_no=empid_no.section(':', 2, 2);
                        qDebug()<<"Emd ID = "<<empid_no;
                        qDebug()<<"Company ID"<<result.section(':', 4, 4);

                       QmlDocument *qml = QmlDocument::create("asset:///second.qml").parent(this);
                         qml->setContextProperty("app", this);   // changed
                       Page *new_Page = qml->createRootObject<Page>();
                       m_pane->push(new_Page);
                              **?????????????????????????????**

            }
ApplicationUI::ApplicationUI(bb::cascades::Application*app):
QObject(应用程序)
,m_成功(错误)
,m_活动(错误)
{
QmlDocument*qml=QmlDocument::create(“asset:///main.qml)母公司(本公司);
qml->setContextProperty(“应用程序”,此);
//qml->setContextProperty(“第二个”,m_窗格);
m_root=qml->createRootObject();
m_pane=m_root->findChild(“mynavigation”);//已更改
应用->设置场景(m_根);
}
void ApplicationUI::sendRequest()
{
如果(m_活动)
返回;
m_active=真;
emit activeChanged();
m_succeed=假;
QNetworkAccessManager*networkAccessManager=新的QNetworkAccessManager(此);
QNetworkRequest请求(m_urllink);
QNetworkReply*reply=networkAccessManager->get(请求);
bool ok=connect(应答,信号(finished()),this,插槽(onFinished());
Q_断言(ok);
Q_未使用(正常);
}
void ApplicationUI::onFinished()
{
m_succeed=真;
QNetworkReply*reply=qobject_cast(发送方());
QString反应;
如果(回复->属性(QNetworkRequest::HttpStatusCodeAttribute).toInt()==200)
{
JsonDataAccess jda;
QVariantMap=jda.loadFromBuffer(reply->readAll()).toMap();
QVariantList addresses=map[“RegistrationResult”].toList();

qDebug()second.qml应该是一个页面,你能粘贴那个qml吗?我猜你在这个代码执行页面上出错了*new\u Page=qml->createRootObject();请检查qml文件..我添加了上面的代码..请帮助解决此问题..我是blackberry的新手..main.qml不是导航窗格,您无法将页面推送到简单的容器中。同时粘贴second.qml我将尝试在此处为uGet设置我的完整应用程序源代码..您会有一些想法..1.我使用Json web服务获得响应2.当我按下一个按钮,当响应成功时,我必须按到新页面,否则必须显示一个祝酒词--已注册3.我将收到“电子邮件id已注册”或“已注册成功”4.当我注册成功时,我只需按一下新页面OK..更改:QmlDocument*qml=QmlDocument::create(“asset:///second.qml)。母公司(本公司).property(“app”,this);Page*new\u Page=qml->createRootObject();qml->setContextProperty(“app”,this);m\u pane->push(new\u Page);你可以压缩你的项目文件夹并链接我,git repo看起来很大。好的,最终修改。对我来说效果很好:::删除一行qml->setContextProperty(“app”,this);最终代码是:("asset:///second.qml).parent(this).property(“app”,this);Page*new_Page=qml->createRootObject();m_pane->push(new_Page);删除了sendRequest()中的此行-->qml->setContextProperty(“app”,this);…但应用程序也会关闭
    ApplicationUI::ApplicationUI(bb::cascades::Application *app) :
        QObject(app)
    , m_succeeded(false)
    , m_active(false)
{

    QmlDocument *qml = QmlDocument::create("asset:///main.qml").parent(this);
        qml->setContextProperty("app", this);
        //qml->setContextProperty("second", m_pane);

        m_root = qml->createRootObject<AbstractPane>();

       m_pane = m_root->findChild<NavigationPane*>("mynavigation"); //  changed
        app->setScene(m_root);
}

void ApplicationUI::sendRequest()
{

    if (m_active)
            return;

    m_active = true;
        emit activeChanged();

    m_succeeded = false;


    QNetworkAccessManager* networkAccessManager = new QNetworkAccessManager(this);

    QNetworkRequest request(m_urllink);

    QNetworkReply* reply = networkAccessManager->get(request);

    bool ok = connect(reply, SIGNAL(finished()), this, SLOT(onFinished()));
    Q_ASSERT(ok);
    Q_UNUSED(ok);
}

void ApplicationUI::onFinished()
{

    m_succeeded = true;

    QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender());

    QString response;

if (reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() == 200)
    {
            JsonDataAccess jda;

            QVariantMap map = jda.loadFromBuffer(reply->readAll()).toMap();

            QVariantList addresses = map["RegistrationResult"].toList();

            qDebug() <<"Full Result is = "<<map["RegistrationResult"].toString();

            QString m_temperature;
            QString result;


            result = map["RegistrationResult"].toString();
            m_temperature=result.section(':', 0, 0);

            m_urlResult = result;
            emit urlResultChanged();
            qDebug()<<m_urlResult;
            qDebug()<<"\n\n\n";
            if(result == "EMAIL ID ALREADY EXISTS")
            {

                        qDebug() << " New Registration Result is " <<m_temperature;
                        qDebug() <<map["RegistrationResult"].toString();

            }

            else if(result != "EMAIL ID ALREADY EXISTS")
            {

                        QString empid;
                        QString empid_no;

                        QString::SectionFlag flag = QString::SectionSkipEmpty;

                        result = map["RegistrationResult"].toString();
                        //empid=m_temperature.section(':', 1, 1);
                        empid_no = map["RegistrationResult"].toString();;
                        empid_no=empid_no.section(':', 2, 2);
                        qDebug()<<"Emd ID = "<<empid_no;
                        qDebug()<<"Company ID"<<result.section(':', 4, 4);

                       QmlDocument *qml = QmlDocument::create("asset:///second.qml").parent(this);
                         qml->setContextProperty("app", this);   // changed
                       Page *new_Page = qml->createRootObject<Page>();
                       m_pane->push(new_Page);
                              **?????????????????????????????**

            }