Como obter dados da API REST com QML (para app de toque do Ubuntu)?

5

Estou tentando usar a API REST do Firebase e obter alguns dados em meu aplicativo de toque do Ubuntu. Você pode me dar algumas dicas sobre como eu poderia fazer isso?

    
por Ray Alez 02.11.2014 / 21:44

1 resposta

7

Você pode fazer isso usando algum código Javascript no QML:

import QtQuick 2.0
import Ubuntu.Components 0.1

Item {
    width: 200
    height: 150

    ListModel {
        id: model
    }

    ListView {
        id: listview
        anchors.fill: parent
        model: model
        delegate: Text {
            text: jsondata
        }
    }

    function getData() {
        var xmlhttp = new XMLHttpRequest();
        var url = "https://samplechat.firebaseio-demo.com/users/jack/name.json";

        xmlhttp.onreadystatechange=function() {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                myFunction(xmlhttp.responseText);
            }
        }
        xmlhttp.open("GET", url, true);
        xmlhttp.send();
    }

    function myFunction(json) {
        var obj = JSON.parse(json);
        listview.model.append( {jsondata: obj.first +" "+ obj.last })
    }

    Button {
        anchors.bottom: parent.bottom
        width: parent.width
        text: "GET Data"
        onClicked: getData()
    }
}  

Execute o seguinte código com qmlscene :

Depois de clicar para obter dados do Firebase:

Para executar o código acima, certifique-se de preencher o banco de dados da seguinte forma:

curl -X PUT -d '{ "first": "Jack", "last": "Sparrow" }' \
https://samplechat.firebaseio-demo.com/users/jack/name.json

Fonte

    
por Sylvain Pineau 02.11.2014 / 23:36