web-dev-qa-db-fra.com

Comment obtenir des données de REST API avec QML (pour Ubuntu Touch App)?

J'essaie d'utiliser firebase REST API et de récupérer des données dans mon application Ubuntu Touch. Pouvez-vous me donner des indications sur la façon dont je pourrais y arriver?

5
Ray Alez

Vous pouvez le faire en utilisant du code Javascript dans 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()
    }
}  

Exécutez le code suivant avec qmlscene:

enter image description here

Après avoir cliqué pour obtenir les données de Firebase:

enter image description here

Pour exécuter le code ci-dessus, assurez-vous de renseigner la base de données comme suit:

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

Source

7
Sylvain Pineau