El hub de contingut - consells i trucs¶
Centre de continguts¶
A Ubuntu Touch les aplicacions estan confinades. La manera de compartir fitxers entre ells és a través del Content Hub, una part del sistema que s’encarrega de la importació, exportació i compartició de fitxers.
Diferents maneres de compartir el contingut¶
Com podem veure a la documentació del Content Hub hi ha diverses maneres de gestionar el fitxer a compartir:
ContentHandler.Source(L’aplicació seleccionada proporcionarà un fitxer a importar)ContentHandler.Destination(L’aplicació seleccionada serà la destinació del fitxer exportat)ContentHandler.Share(L’aplicació seleccionada serà la destinació del fitxer exportat, que després es compartirà externament)
Importació¶
Creador de Webapp a l’OpenStore¶
Mirant el codi de Webapp Creator, trobarem el codi per importar una imatge que s’utilitzarà com a icona. Anar al titular del lloc obrirà el Content Hub que ens permetrà triar d’on importar la imatge (seeveure el codi font del creador de Webapp <https://gitlab.com/cibersheep/webapp-creator/blob/master/webapp-creator/app/ImportPage.qml#L38> the)
ContentPeerPicker {
anchors { fill: parent; topMargin: picker.header.height }
visible: parent.visible
showTitle: false
contentType: picker.contentType //ContentType.Pictures
handler: picker.handler //ContentHandler.Source
ContentPeerPicker és l’element que mostra les aplicacions.
var importPage = mainPageStack.push(Qt.resolvedUrl("ImportPage.qml"),{"contentType": ContentType.Pictures, "handler": ContentHandler.Source})
contentType es passa a Main.qml com a ContentType.Pictures. Per tant, només veurem aplicacions des de les quals només podem importar imatges. handler es passa en la mateixa línia que ContentHandler.Source. Com volem importar una imatge de l’app seleccionada al Content Hub.
Exportació¶
Gelek a l’OpenStore¶
A Gelek, acabarem amb alguns jocs guardats que volem guardar al nostre dispositiu o compartir amb nosaltres mateixos (a Telegram i després guardar-los al nostre ordinador).
A la icona de descàrrega obtindrem un Content Hub per a savar el fitxer de joc (que en realitat és una exportació).
El fitxer de joc és un fitxer del tipus glksave. Li direm a Content Hub que estem enviant un fitxer de tipus All (vegeu el codi de pàgina d’instal·lació).
ContentPeerPicker {
anchors { fill: parent; topMargin: picker.header.height }
visible: parent.visible
showTitle: false
contentType: ContentType.All
handler: ContentHandler.Destination
onPeerSelected: {
contentType és ContentType.All, així que només veurem aplicacions que poden rebre tipus de fitxers sense marcar. handler és ContentHandler.Destination, de manera que l’aplicació seleccionada hauria d’emmagatzemar el joc desat.
En fer clic al gestor de fitxers, desarem la partida desada a la carpeta que escollim.
Espera un minut. Per què les diferents apps?¶
Hub de contingut: Exportació vs Compartir¶
Cada desenvolupador pot decidir les regles que seguiria cada aplicació en relació amb el Content Hub. Per què l’OpenStore es mostra com la destinació d’una exportació?
Anem a comprovar el seu manifest.json
"hooks": {
"openstore": {
"apparmor": "openstore/openstore.apparmor",
"desktop": "openstore/openstore.desktop",
"urls": "openstore/openstore.url-dispatcher",
"content-hub": "openstore/openstore-contenthub.json"
}
},
El codi anterior defineix que els ganxos de l’aplicació anomenada "openstore" en relació amb el "content-hub" han de seguir les regles definides a openstore-contenthub.json
{
"destination": [
"all"
]
}
Això vol dir que l’OpenStore serà la destinació de tots els ContentTypes.
Què hi ha dels uMatriks? Vegem el seu content-hub.json
{
"destination": [
"pictures",
"documents",
"videos",
"contacts",
"music"
],
"share": [
"pictures",
"documents",
"videos",
"contacts",
"music"
],
"source": [
"pictures",
"documents",
"videos",
"contacts",
"music"
]
}
Així, amb aquest exemple, uMatriks podrà ser la destinació, font i compartir app per a tot tipus de ContentType. Què passa amb els altres ganxos del manifest.json? Això es discuteix en la guia següent.