Content Hub - ເຄັດລັບ ແລະ ເຕັກນິກ

../../_images/011.png

ໜ້າແບ່ງປັນ Content Hub

ໃນ Ubuntu Touch ແອັບຕ່າງໆຈະຖືກຈຳກັດຂອບເຂດ (confined). ວິທີການແບ່ງປັນໄຟລ໌ລະຫວ່າງພວກມັນແມ່ນຜ່ານ Content Hub, ເຊິ່ງເປັນສ່ວນໜຶ່ງຂອງລະບົບທີ່ເບິ່ງແຍງການນຳເຂົ້າ, ສົ່ງອອກ ແລະ ແບ່ງປັນໄຟລ໌.

ວິທີຕ່າງໆໃນການແບ່ງປັນເນື້ອຫາ

ດັ່ງທີ່ພວກເຮົາເຫັນໃນ ເອກະສານ Content Hub, ມີຫຼາຍວິທີໃນການຈັດການໄຟລ໌ທີ່ຈະແບ່ງປັນ:

  • ContentHandler.Source (ແອັບທີ່ເລືອກຈະສະໜອງໄຟລ໌ທີ່ຈະນຳເຂົ້າ)

  • ContentHandler.Destination (ແອັບທີ່ເລືອກຈະເປັນປາຍທາງສຳລັບໄຟລ໌ທີ່ສົ່ງອອກ)

  • ContentHandler.Share (ແອັບທີ່ເລືອກຈະເປັນປາຍທາງສຳລັບໄຟລ໌ທີ່ສົ່ງອອກ, ເຊິ່ງຈາກນັ້ນຈະຖືກແບ່ງປັນອອກໄປພາຍນອກ)

../../_images/12.svg

ການນຳເຂົ້າ (Importing)

../../_images/021.png

Webapp Creator ໃນ OpenStore

ເມື່ອເບິ່ງເຂົ້າໄປໃນໂຄ້ດຂອງ Webapp Creator, ພວກເຮົາຈະພົບເຫັນໂຄ້ດເພື່ອນຳເຂົ້າຮູບພາບທີ່ຈະໃຊ້ເປັນໄອຄອນ. ການແຕະໃສ່ບ່ອນວາງ ຈະເປີດ Content Hub ທີ່ຈະໃຫ້ພວກເຮົາເລືອກບ່ອນທີ່ຈະນຳເຂົ້າຮູບພາບ (ເບິ່ງຊອດໂຄ້ດ Webapp Creator)

ContentPeerPicker {
    anchors { fill: parent; topMargin: picker.header.height }
    visible: parent.visible
    showTitle: false
    contentType: picker.contentType //ContentType.Pictures
    handler: picker.handler //ContentHandler.Source

ContentPeerPicker ແມ່ນອົງປະກອບທີ່ສະແດງແອັບຕ່າງໆ.

var importPage = mainPageStack.push(Qt.resolvedUrl("ImportPage.qml"),{"contentType": ContentType.Pictures, "handler": ContentHandler.Source})

contentType ຖືກສົ່ງໄປໃນ Main.qml ເປັນ ContentType.Pictures. ດັ່ງນັ້ນ, ພວກເຮົາຈະເຫັນພຽງແຕ່ແອັບທີ່ພວກເຮົາສາມາດນຳເຂົ້າຮູບພາບໄດ້ເທົ່ານັ້ນ. handler ຖືກສົ່ງໄປໃນແຖວດຽວກັນເປັນ ContentHandler.Source. ເນື່ອງຈາກພວກເຮົາຕ້ອງການນຳເຂົ້າຮູບພາບຈາກແອັບທີ່ເລືອກໃນ Content Hub.

ການສົ່ງອອກ (Exporting)

../../_images/041.png

Gelek ໃນ OpenStore

ໃນ Gelek, ພວກເຮົາຈະຈົບລົງດ້ວຍເກມທີ່ບັນທຶກໄວ້ຈຳນວນໜຶ່ງ ທີ່ພວກເຮົາຕ້ອງການບັນທຶກໄວ້ໃນອຸປະກອນຂອງພວກເຮົາ ຫຼື ແບ່ງປັນກັບຕົວເຮົາເອງ (ໃນ Telegram ແລະ ຈາກນັ້ນບັນທຶກພວກມັນໄວ້ໃນຄອມພິວເຕີຂອງພວກເຮົາ).

../../_images/051.png

ການແຕະໃສ່ໄອຄອນດາວໂຫຼດ ພວກເຮົາຈະໄດ້ຮັບ Content Hub ເພື່ອ ບັນທຶກ ໄຟລ໌ເກມ (ເຊິ່ງຄວາມຈິງແລ້ວແມ່ນການສົ່ງອອກ).

ໄຟລ໌ເກມແມ່ນໄຟລ໌ປະເພດ glksave. ພວກເຮົາຈະບອກ Content Hub ວ່າພວກເຮົາກຳລັງສົ່ງໄຟລ໌ປະເພດ All (ເບິ່ງໂຄ້ດ Install Page).

ContentPeerPicker {
    anchors { fill: parent; topMargin: picker.header.height }
    visible: parent.visible
    showTitle: false
    contentType: ContentType.All
    handler: ContentHandler.Destination

    onPeerSelected: {

contentType ແມ່ນ ContentType.All, ດັ່ງນັ້ນ ພວກເຮົາຈະເຫັນພຽງແຕ່ແອັບທີ່ສາມາດຮັບປະເພດໄຟລ໌ທີ່ບໍ່ໄດ້ໝາຍໄວ້. handler ແມ່ນ ContentHandler.Destination, ດັ່ງນັ້ນ ແອັບທີ່ເລືອກຄວນຈະເກັບຮັກສາເກມທີ່ບັນທຶກໄວ້.

ການແຕະໃສ່ File Manager ພວກເຮົາຈະບັນທຶກເກມທີ່ບັນທຶກໄວ້ໃນໂຟນເດີທີ່ພວກເຮົາເລືອກ.

ການແບ່ງປັນ (Sharing)

ໃນທຳນອງດຽວກັນ, ການແຕະໃສ່ໄອຄອນແບ່ງປັນ ຈະອະນຸຍາດໃຫ້ພວກເຮົາສົ່ງເກມທີ່ບັນທຶກໄວ້ຜ່ານ Telegram ຫາຕົວເຮົາເອງ (ເບິ່ງຊອດໂຄ້ດ Webapp Creator Import Page). ການແບ່ງປັນແມ່ນຄ້າຍຄືກັບການສົ່ງອອກ, ຍົກເວັ້ນແອັບປາຍທາງອາດຈະແບ່ງປັນເນື້ອຫາອອກໄປພາຍນອກ (ຕົວຢ່າງເຊັ່ນ: ຜ່ານ Telegram ຫຼື ຂໍ້ຄວາມ).

ContentPeerPicker {
    anchors { fill: parent; topMargin: picker.header.height }
    visible: parent.visible
    showTitle: false
    contentType: picker.contentType //ContentType.Pictures
    handler: picker.handler //ContentHandler.Source

    onPeerSelected: {

ຄວາມແຕກຕ່າງພຽງຢ່າງດຽວລະຫວ່າງອັນນີ້ ແລະ ໂຄ້ດກ່ອນໜ້ານີ້ແມ່ນ handler ແມ່ນ ContentHandler.Share.

ດຽວກ່ອນ. ເປັນຫຍັງຈຶ່ງມີແອັບທີ່ແຕກຕ່າງກັນ?

../../_images/081.png

Content Hub: Export ທຽບກັບ Share

ນັກພັດທະນາແຕ່ລະຄົນສາມາດຕັດສິນໃຈກົດລະບຽບທີ່ແຕ່ລະແອັບຈະປະຕິບັດຕາມທີ່ກ່ຽວຂ້ອງກັບ Content Hub. ເປັນຫຍັງ OpenStore ຈຶ່ງສະແດງເປັນປາຍທາງຂອງການສົ່ງອອກ?

ມາເບິ່ງ manifest.json ຂອງມັນກັນ

"hooks": {
    "openstore": {
        "apparmor": "openstore/openstore.apparmor",
        "desktop": "openstore/openstore.desktop",
        "urls": "openstore/openstore.url-dispatcher",
        "content-hub": "openstore/openstore-contenthub.json"
    }
},

ໂຄ້ດຂ້າງເທິງກຳນົດວ່າ hooks ສຳລັບແອັບຊື່ "openstore" ທີ່ກ່ຽວຂ້ອງກັບ "content-hub" ຄວນປະຕິບັດຕາມກົດລະບຽບທີ່ກຳນົດໄວ້ໃນ openstore-contenthub.json

{
    "destination": [
        "all"
    ]
}

ນີ້ໝາຍຄວາມວ່າ, OpenStore ຈະເປັນປາຍທາງສຳລັບ ContentTypes ທັງໝົດ.

ແລ້ວ uMatriks ເດ? ມາເບິ່ງ content-hub.json ຂອງມັນກັນ

{
    "destination": [
        "pictures",
        "documents",
        "videos",
        "contacts",
        "music"
    ],
    "share": [
        "pictures",
        "documents",
        "videos",
        "contacts",
        "music"
    ],
    "source": [
        "pictures",
        "documents",
        "videos",
        "contacts",
        "music"
    ]
}

ດັ່ງນັ້ນ, ດ້ວຍຕົວຢ່າງນີ້, uMatriks ຈະສາມາດເປັນປາຍທາງ, ຕົ້ນທາງ ແລະ ແອັບແບ່ງປັນສຳລັບ ContentType ທຸກປະເພດ. ແລ້ວ hooks ອື່ນໆໃນ manifest.json ເດ? ນັ້ນຈະຖືກສົນທະນາໃນຄູ່ມືຖັດໄປ.