Google Play do'koni endi Progressive Web Apps Apps uchun ochiq

Rad etish: Men Google Play, Chrome yoki boshqa biron bir kompaniya bilan aloqador emasman. Bu rasmiy bayonot emas; logotip va nomdan foydalanish faqat rasm uchun.

Android uchun Chrome 72 uzoq vaqtdan beri ishonchli veb-faollik xususiyatini etkazib berdi, ya'ni endi Google Play do'konida PWA-larni tarqatishimiz mumkin! Men ushbu xususiyat bilan bir muncha vaqt o'ynadim, APIlarni o'rganib chiqdim va bu erda nima bo'layotgani, nimani kutish kerakligi va uni bugungi kunda qanday ishlatishingiz haqida qisqacha ma'lumotingiz bor.

Ushbu maqola kirish va men darslar seriyasida ishlamoqdaman, shuning uchun sizga qiziqish bo'lsa, meni Twitterda kuzatib boring yoki mening yangiliklarga obuna bo'ling.

Endi DWA do'konda o'ynashi mumkin

Android uchun Chrome 72 endi Play Store-dan barcha foydalanuvchilarga va Ishonchli Internet Faoliyatiga (TWA) kiritilgan ushbu versiya, qisqacha aytganda, Chrome-ni avtonom rejimda (vositalar panelisiz yoki Chrome UI-da) ochish usuli. bizning shaxsiy Android to'plamimiz.

Nashr qilish jarayoni oddiy emasligini aytmoqchiman (masalan, Play Console-ga "URL-manzilingizni kiriting" va u tugadi.) Shuningdek, mavjud WebAPK-dan foydalanish va uni do'konda chop etishning imkoni yo'q. Bu Java API bilan xizmatlar orqali aloqa qiladigan va boshlang'ich bosqichda ko'rinadigan Java API, shuning uchun bugungi kunda juda ko'p ishlarni bajarish kerak.

Men buni birinchi qadam sifatida ko'rmoqdaman va yaqin orada (ehtimol, hamjamiyat tomonidan) yaxshiroq vositalar paydo bo'lishi mumkin, ushbu mavjud API-lar yordamida mexanizmni saqlash uchun bir marta bosish orqali yaratish mumkin. Ammo joriy API bilan PWA-ning ishga tushirgichini yuborish mumkin. Men ushbu maqoladagi tajribamni barcha qiziquvchilar uchun baham ko'raman.

Ba'zi sabablarga ko'ra, xususiyat hali Chrome platformasi holatida jo'natilmagan va 15 oy oldin chop etilganidan ko'ra yangilangan hujjatlar mavjud emas.

* UPDATE 2/5: Chromium Blog TWA-ni tasdiqlovchi va ushbu maqolaning ba'zi texnik tasdiqlarini olgan qisqa xabarni joylashtirdi.

* UPDATE 2/1: Pol DevRel @ Google rahbari Pol Kinlan TWA jo'natilganligini tasdiqladi va hujjatlar tezda kechiktirildi; Rasmiy bildirishnomalar va hujjatlarning kechiktirilishining sababi shundaki, Chrome 72-da ushbu xususiyatga o'tishni bekor qilish so'nggi daqiqali qaror edi.

Nega do'konda PWA-ni nashr qilish kerak?

Maks veb-platforma! Nima uchun biz Do'kondan foydalanmoqchimiz?

Xo'sh, bu uzoq munozara, lekin men yillar davomida kichik va katta kompaniyalar bilan maslahatlashib kelmoqdaman va PWA sarmoyasi haqida gapirganda, do'kon doimiy talabga ega. "Mening foydalanuvchilarim mening ilovamni Do'konda qidirishadi", "Menda to'xtashni xohlagan ona ilovam bor, lekin foydalanuvchilarimdan mahrum bo'lishni xohlamayman", "Men ona API-ga kirishim kerak" yoki "Men PWA-dan pul ishlashni xohlayman."

Endi sizning PWA-ni Do'konda va brauzerdan nashr qilish mumkin bo'ladi. Albatta, bu opt-opt operatsiyasi. Play Store Microsoft do'koniga taqlid qilmaydi: agar o'zingizning shaxsiy APK-dasturingizni tuzib, uni nashr qilmasangiz, PWA do'konga kiritilmaydi.

Standart PWA o'rnatilishining afzalliklari

Yangi tarqatish mexanizmi va sizning ilovangizni do'kondan topayotgan odamlar (va hatto Google tomonidan "Ilovalar" da qidirishda) do'konda PWA bilan ishlashimiz mumkin bo'lgan ba'zi narsalar mavjud:

  • Uy ekranidagi vidjetni taklif qiling
  • Ilova yorliqlarini (ilovaning ikonkasini uzoq vaqt bosganingizda) va OS bilan boshqa chuqur integratsiyalarni taklif qiling
  • OS operatsion tizimiga oid dastur yoki Android Auto kengaytmasini taklif qiling
  • Qattiq qayta o'rnatgandan yoki yangi telefonda zaxira nusxasini tiklaganingizdan so'ng qayta o'rnating
  • Fon xizmatlarining mahalliy xususiyatlaridan foydalana olish (PWA bilan aloqa hanuzgacha cheklangan - bu haqda keyinroq)
  • Ilovadan pul oling - bugun cheklangan, bundan keyin ko'proq
  • Ba'zi mahalliy ekranlarga PWA tarkibiga aralashtiring
  • Ishga tushirish panelida va / yoki uy ekranida bir nechta PWA ikonkalarini taqsimlang (turli xil URL-manzillarga (bir xil kompyuterda)
  • Yaxshisi xalqarolashtirish

Bu erda nima yangilik?

Do'konda allaqachon PWA bor edi, ammo endi ularni ishlab chiqarish va nashr etish ancha osonlashadi

Google Play do'konida allaqachon Google Maps Go, Instagram Lite yoki Twitter Lite kabi ba'zi PWA-lar mavjud. Birinchisi, TWAdan oldin biron bir xususiy versiyani ishlatsa, ikkinchisi WebView-dan foydalanadi, bu ideal emas, ammo TWA-largacha bunday ishni qilishning yagona usuli edi. Ushbu ilovalar ba'zi narsalar uchun, masalan, bildirishnomalar uchun ko'plab mahalliy kodlarni qo'shmoqda. Biz PWA-larni veb-ishlab chiquvchilar sifatida nashr qilmoqchimiz, ko'p Java kodini yozishni xohlamaymiz.

TWA - bu Chrome shaxsiy ichki oynalarida maxsus rejim bo'lib, In-App brauzerini ochish uchun Chrome 45-dan mahalliy Android ilovalari uchun echim mavjud.

TWA Cordovaga o'xshash gibrid ramka emasmi?

Yo'q. Cordova yoki boshqa gibrid echimlar yordamida odatda veb-resurslaringizni (HTML, JS, CSS va hk) APK to'plamingiz orqali etkazib berasiz. Bundan tashqari, vosita boshqacha va foydalanuvchilarning brauzeridan ajratilgan, shuning uchun seans yoki keshni almashish bo'lmaydi.

Bu PWA Ishonchli Veb Faoliyatiga o'xshaydi (Starbucks aslida yo'q edi). Mavzu rangi hali amalga oshirilganini ko'rmayapman

Ishonchli veb-faollik bilan siz PWA-dan biron-bir manbali faylni paketlashingiz shart emas (agar xohlasangiz, faqat mahalliy komponentlar); sizning barcha manbalaringiz sizning Service Worker-dan yuklab olinadi va yangilanadi. Sizning PWA brauzeringiz bilan barcha Chrome, o'rnatilgan versiyalari, barcha saqlash, kesh va sessiyalarni baham ko'rishi mumkin. Shuning uchun, agar foydalanuvchi Play Store-dan dasturni o'rnatganda veb-saytingizda sessiya ochilgan bo'lsa, u hali ham tizimga kiradi. Foydalanuvchi Chrome-ga maxsus rejimni ishlatib yorliq o'rnatmoqda.

Play Marketni tasdiqlash talablari (* UPDATE 2/5)

Ishonchli veb-faoliyat uchun foydalanadigan URL manzili quyidagilarga mos kelishi kerak:

  • PWA mezonlaridan o'tish (odatda bugungi kunda: HTTPS, yuklash voqealarini boshqaruvchisi bo'lgan xizmat ko'rsatuvchi va 512px ikonka, background_color va boshqa asosiy xususiyatlar to'plami bo'lgan Web App Manifest.)
  • Lighthouse-da sinovdan o'tkazilgan kamida 80/100 darajadagi ishlash ko'rsatkichi (Chrome Dev Tools-da yoki NPM CLI-da mavjud).
  • Google Play Store-ning amaldagi barcha qoidalari.

Ushbu maqola birinchi marta chop etilganidan bir necha kun o'tgandan keyin chop etilgan Chromium Blog xabariga ko'ra, "TWA sifati talablariga yoki Play Market siyosatiga javob bermaydigan dasturlarni kiritish taqiqlanishi yoki o'chirilishi mumkin."

Ilovani nashr etishda ushbu talablar Play Store QA guruhi tomonidan tekshiriladimi yoki yo'qmi hali aniq bilmayman.

Google Play do'konidagi PWA-larning xavfsizlik modeli (* UPDATE 2/4)

Sizning PWA-kodingiz o'zingizning APK-dasturingizga ona kodini qo'shmasangiz, o'zingizning ilovangiz ostida emas, balki brauzer xavfsizlik modelida ishlaydi. Faoliyat Chrome tomonidan boshqarilishi sababli, foydalanuvchi shuni bilishi kerakki, agar u hozirgina dasturni o'rnatgan bo'lsa ham, u sessiya ma'lumotlari, mahalliy omborlar va ana o'sha xost uchun o'rnatilgan ruxsatlarga ega bo'lishi mumkin. Shu sababli foydalanuvchi birinchi marta yorliqni ochganda, u "Chrome-da ishlayotgan" mini-infobitsiyasini ko'radi, buni Robin Bakker ta'kidlagan:

Shuningdek, foydalanuvchi Ilovalar menejeridan foydalanuvchi dasturni o'chirib tashlaganida, biz Chrome brauzerida turib, ilova holati va ma'lumotlar mavjudligi to'g'risida ogohlantiramiz, shuning uchun agar kerak bo'lsa, keshni tozalab tashlaydi. Bu, masalan, Web Push ruxsatini o'z ichiga oladi, shuning uchun foydalanuvchi dasturni o'chirib tashlasa ham, ilova hali ham push-bildirishnoma xabarlarini yuborishi mumkin. Xabarni Genri Lim diqqat bilan kuzatdi:

Ushbu dialoglar va ularning sabablarini Chrome guruhidan Pol Kinlan tasdiqladi.

Rivojlanish imkoniyatlari

TWA yordamida Android paketini yaratish uchun avval Android Studio kerak bo'ladi. Hozirda mavjud variantlar eksperimental va faqat Chrome GitHub omboridagi ba'zi ochiq manbali misollar bilan hujjatlashtirilgan.

Biz TWA yordamida ilovalarni ishlab chiqishimiz mumkin:

  • Chrome jamoasi tomonidan taqdim etilgan yuqori darajadagi Java qo'llab-quvvatlash kutubxonasidan foydalanish: bu holda siz biron bir Java yoki Kotlin ona kodini yozishingiz shart emas; siz Android Studio loyihasini yaratasiz (yoki misolni klonlashingiz mumkin), WebMan Манифестingizdan AndroidManifest.xml-da ba'zi meta-ma'lumotlarni o'rnatasiz va barchasi tugallandi.
    Ushbu ramka TWA bilan aloqani ta'minlaydi va Android qurilmasida Sozlamalar yozuvini yaratish va Web Push bildirishnomalarini mavjud qilish uchun ixtiyoriy qobiliyatni ta'minlaydi. Hozirgi vaqtda ramka vaqtincha Jitpack omboridagi qo'llab-quvvatlash kutubxonasi sifatida mavjud. O'ylaymanki, kelajakda bu kutubxonaning yakuniy joyi bo'lmaydi.
  • Ishonchli veb-faollikdan qo'lda foydalanish. Agar siz Java yoki Kotlin-da Android dasturlarini ishlab chiqishda tajribangiz bo'lsa, PWA-ni o'zingizning qo'lingiz bilan ilovangizga ulashingiz mumkin. Bu siz ba'zi mahalliy faoliyatga ega bo'lishingiz va bir vaqtning o'zida PWA yordamida Ishonchli Internet Faoliyatini ochishingiz mumkin degan ma'noni anglatadi. Bunday holda, sizning loyihangizdan Chrome-ga qanday ulanishni tushunish uchun qo'llab-quvvatlash kutubxonasini tahlil qilishni taklif qilaman.

* UPDATE 2/5: Endi TWA yordamchisi TrustedWebUtils-ga tegishli Android veb-saytida hujjatlar mavjud.

Manifestni tarqatish

Ilovalar do'konidagi PWA veb-ilovalar uchun qo'llanmani qanday ishlashini aniqlash uchun Web App Manifest-dan foydalanmaydi; biz ushbu qadriyatlarning bir qismini qo'lda nusxalashimiz kerak. Belgilar "boshqa" papkadan olinadi, boshqa har qanday Android ilovasi singari, yo'naltirish qulfini AndroidManifest-ning faollik yozuvida va boshqalarda aniqlash kerak.

Agar siz Java qo'llab-quvvatlash kutubxonasidan foydalanayotgan bo'lsangiz, avtomatik ravishda skrining ekran avtomatik ravishda yaratilishi mumkin, ammo manifestning boshqa xususiyatlari ishlatilmaydi. Aslida, mening sinovimda men PWA ekranda bo'lganda mavzu rangining qo'llanilishini ko'rmadim.

URL tekshiruvi

TWA-lar, agar biz o'z domenimizni dastur bilan raqamli almashsak, ishlaydi. Bu raqamli aktivlar havolalari deb nomlanadigan mexanizm. Bu sizning xostingiz va APK-ning o'rtasida ishonchli aloqani o'rnatadi, siz PWA egasi ekanligingizni va siz o'zingiz ega bo'lmagan Play Store-da PWA-larni tarqatmasligingizni tasdiqlaydi. Shuningdek, u sizning veb-saytingiz va ona ilovangiz o'rtasida raqamli ma'lumotlarga ega bo'lib, ular nazariy jihatdan ularga shaxsiy ma'lumotlarni bo'lishishga imkon beradi (ammo bugungi TWA API-da bunday ko'rinmaydi).

Digital Asset Links-da siz PWA domeningizda /.well- unknown/assetlinks.json URL-dagi faylga xizmat qilishingiz kerak. Ushbu JSON faylida sizning Android paketingiz haqidagi ma'lumotlar (masalan, paket identifikatori) va terminalda buyruqni bajarishingiz mumkin bo'lgan ilova sertifikati mavjud. Sizning Android to'plamingizda mezbon URL manzilini o'rnatadigan hamkori bo'ladi. Hammasi yaxshi yoki yo'qligini tekshirish uchun onlayn tekshirish vositasi mavjud.

Agar siz qo'l tejashni amalga oshirmasangiz, TWA faollashtirilmaydi va sizning ilovangiz oddiy PWA ekraniga o'xshagan Chrome foydalanuvchi interfeysiga ega oddiy Chrome Custom yorliqlaridan foydalanadi: minimal-ui. Men mutlaqo amin emasman, lekin Play Store oddiy Custom yorliqlarini ko'rsatadigan va tasdiqlanmagan TWA dasturlarini rad qilishi mumkin deb o'ylayman. Raqamli aktivlarni ulashni tekshirishni Chrome qachon amalga oshirayotganiga hali aniq amin emasman; agar dastur TWA sifatida ochilishidan oldin uni har qanday kirishda amalga oshirilsa, unumdorlik muammosi bo'lishi mumkin. Ilovani qabul qilishdan oldin kesh mumkin va Play Store buni tekshirishi mumkin. Kelgusidagi hujjatlar bizga ushbu masala bo'yicha aniqlik berishini ko'ramiz.

Rivojlanish maqsadlarida Digital Asset Link sertifikatlash jarayonini chetlab o'tish uchun (shunchalik oddiy emas) mexanizm mavjud, quyida ushbu maqolada tushuntirilgan.

Ilovangiz joylashtirilmoqda

TWA-dan foydalanib PWA yorliqingizni nashr qilish uchun Google Play Store-ning barcha qoidalariga rioya qilishingiz kerak. Qo'shimcha ma'lumot olish uchun Tuzuvchi Siyosat Markaziga murojaat qiling. Bundan tashqari, siz dasturchi uchun 25 AQSh dollari miqdoridagi bir martalik to'lovni to'lashingiz va dasturingiz uchun meta-ma'lumot, skrinshot va marketing materialini yaratishingiz kerak.

Google Play do'konida nashr qilish uchun siz ishlab chiqaruvchi shartnomasini qabul qilishingiz va bir martalik $ 25 AQSh dollariga to'lashingiz kerak

Joylashtirish

Android Studio-dan APK-ni (Android Native Package) yaratib bo'lgandan so'ng, sizda ishlab chiqaruvchi konsol hisob qaydnomasi mavjud bo'lsa, siz ishlab chiqarish APK-ni yaratib, Android Studio asboblari vositasida yaratadigan o'z-o'zidan yaratilgan kalit bilan imzo qo'yishingiz kerak. Kelgusida jarayonni soddalashtirish uchun Google Play tomonidan Ilovalarni imzolashni tekshirib ko'rishingiz mumkin.

Google Play konsoli

Ushbu ilovalarni Play Store-ga yuklash uchun maxsus qoidalar yoki jarayonlar mavjud emas, ammo Taftish guruhi sizning TWA-dan foydalanayotganingizni aniqlay oladi va 1) Raqamli aktivlar havolasi yoqilgan va tasdiqlanganligini tekshiradi va 2) URL-manzil o'tmoqda. PWA mezonlari (asosan Service Workch-ning voqealarni boshqaruvchisi uchun).

PWA-ni Google Play do'konida e'lon qilish uchun juda ko'p metadata va grafik aktivlarni to'ldirish majburiydir

Ilovangiz yangilanmoqda

Agar veb-tarkibni o'zgartirsangiz, uni do'kon qoidalariga muvofiq to'liq o'zgartirmasangiz, o'z ilovangizni yana yuklashingiz shart emas. Siz App Workers va serveringizga yangi joylashuvlar orqali yangilanishni davom ettirasiz. Metadata, ona kod yoki belgilarni o'zgartirmoqchi bo'lsangiz, boshqa APK-ni yaratishingiz va yuklashingiz kerak bo'ladi.

Cheklovlar

Men bugungi kunda platformada yuzaga kelishi mumkin bo'lgan cheklovlar ro'yxatini ko'rib turibman, ammo bu faqat boshlang'ich va yangi versiyalar bo'yicha yaxshilanishlarni ko'ramiz.

PWA-lar pastki jildlarda

Agar siz PWA-ni xostning pastki jildiga joylashtirsangiz, bu erda ikkita muammo paydo bo'ladi.

  • Raqamli Asset Link nafaqat papkani, balki butun domenni bog'laydi
  • Joriy qo'llab-quvvatlash kutubxonasi, agar sizning PWA pastki jildda bo'lsa ham, butun xostga intilish (Link Capturing) vazifasini bajaradi.

Ichki ilovalar yo'q

Garchi bu Play Store-ning cheklovidir (siz intranet dasturlarni yoki siz yoki sizning kompaniyangizga tegishli bo'lgan ilovalarni joylashtira olmaysiz), siz TWA-larni ishlatishingiz va do'kondan tashqarida joylashtiradigan APK-larni yaratishingiz mumkin.

Bu mumkin emas, chunki raqamli aktivlarni bog'lash faqat ochiq URL-manzillar bilan ishlaydi, chunki Chrome bizning domenimizga egaligimizni tasdiqlashi kerak va bu hali ichki URL manzillarida mumkin emas.

Birinchi yuk tajribasi

Yaqinda o'rnatilgan ilovani birinchi marta ochganingizda, sizning ilovangizda biron-bir haqiqiy fayl mavjud emas (Service Worker hali ro'yxatdan o'tmagan - agar foydalanuvchi oldin PWA-ga tashrif buyurmagan bo'lsa), shuning uchun agar siz oflayn bo'lsangiz, bo'sh oq ekran. O'rnatgandan so'ng, qandaydir tarzda Chrome-ni isitish uchun harakat qilish kelajakdagi versiyalarda foydali bo'ladi deb o'ylayman. Agar siz qo'llab-quvvatlash kutubxonasi o'rniga TWA API-laridan foydalanayotgan bo'lsangiz, ushbu vaziyatni aniqlab, mahalliy API-dan foydalanuvchiga to'g'ri ma'lumot berishingiz mumkin.

Ona kodni chaqirish

TWA Server (Chrome) va TWA Client (bizning APK) bilan bog'lanish uchun ikki tomonlama kanal allaqachon mavjud. Hozirda ushbu kanal Push-xabarlarni yuborish va ularni bizning Chrome-ning emas, balki mahalliy ilovamizning bir qismi sifatida ko'rsatish uchun ishlatiladi, ammo boshqa hech narsa yo'q.

Microsoft do'koni uchun PWA bilan APPX-ni nashr qilganda sodir bo'ladigan kabi, mahalliy kod va JavaScript kodini ko'p kuch sarflamasdan va bizning PWA-larga ona kodini olish huquqini beradigan potentsial mavjud.

TWA Mijoziga Java / Kotlin darslarini ro'yxatdan o'tkazishning kelajakdagi versiyasini ko'rmoqdaman, shuning uchun biz PWA TWA rejimida ko'rsatilganda ularni JavaScript API bilan chaqira olamiz.

Bugungi kunda, mahalliy kodni amalga oshirishning yagona usuli - boshqa mahalliy faoliyatlarni ochish va TWA parametrlarini URI parametrlari orqali argumentlarni yuborish va qabul qilish uchun ishlatish.

Bundan tashqari, siz biron bir veb-server yoki WebSocket serverini xizmatda ishlaydigan mahalliy kodda yaratishingiz va PWA bilan gaplashishiga imkon berishingiz mumkin, ammo bu juda g'alati, murakkab va ehtimol batareyani iste'mol qilishi mumkin. Ammo hozir ochilishi mumkin bo'lgan butunlay yangi dunyo bor. Jamiyat nimani yaratayotganini ko'raylik!

Play Market orqali pul ishlash

Agar sizning ilovangiz yuklab olinmasa, foydalanuvchi aslida u uchun pul to'laganligini tasdiqlashning oson usuli bo'lmaydi (oxirida sizning tarkibingiz faqat URL manzili bo'ladi); shuningdek, agar sizda Play Store hamyonidan foydalanib sotmoqchi bo'lgan raqamli aktivlaringiz yoki obunalaringiz bo'lsa, uni mahalliy kodga haqiqiy ko'prik qilmasdan turib amalga oshirish qiyin bo'ladi.

Nosozliklarni tuzatish

Bu mening rivojlanishimdagi xato yoki biron bir narsaga ishonchim komil emas, lekin TWA-dan uzoq masofadagi nosozliklarni hal qilish xizmati ishlamayapti. Men derazaning kontekstini tekshirishim mumkin, ammo Xizmat ishchisi emas.

Boshqa dvigatellar

TWA-lar bugungi kunda faqat Chrome bilan ishlaydi, ammo kelajakda API-ni Samsung Internet, Edge yoki Firefox kabi boshqa brauzerlar ham klonlashi mumkin.

* UPDATE 2/4: TWA boshqa brauzerlar ishlayotgan Android Custom Tab protokoli ustida ishlaydi, shuning uchun agar foydalanuvchi Chrome bo'lmasa yoki standart brauzerni o'zgartirgan bo'lsa, boshqa brauzer ustunlikka ega bo'lishi mumkin va PWA bilan TWA-ni ochishi mumkin. tarkibi. Uning qanday ishlashini tushunish uchun ko'proq sinov talab etiladi.

Agar foydalanuvchi Chrome-ning eski versiyasiga ega bo'lsa va ilovani Play Store-dan o'rnatsa nima bo'ladi? Bunday holda, PWA butunlay mustaqil rejimda emas, balki Chrome Custom tab sifatida paydo bo'ladi.

Play Market-dagi Google Maps Go allaqachon TWA-ga o'xshash narsani ishlatib, Chrome-ni zarur deb belgilagan

Agar foydalanuvchi umuman Chrome brauzeriga ega bo'lmasa nima bo'ladi? Bugungi kunda qo'llab-quvvatlash kutubxonasidan foydalangan holda, sizning ilovangiz umuman ishlamaydi (Custom Tabs protokolini tinglayotgan boshqa brauzer bo'lmasa). Agar siz o'zingizning Java / Kotlin kodingizda TWA API-dan foydalanayotgan bo'lsangiz, brauzer mavjudligini aniqlashingiz va WebView yoki brauzerni ochish kabi muqobil echimni yuklashingiz mumkin.

Android qurilmalarini Chrome holda ko'rish unchalik keng tarqalmagan bo'lsa-da, lekin ba'zi bir qurilmalar mavjud, jumladan, Evropada yangi qurilmalar, odatiy holda, Chromesiz etkazib berish.

Boshqa platformalar

PWA-lar OS (soatlar) kiyish rejimida ishlamaydi, ammo men boshqa Android platformalarida nima bo'lishini aniq bilmayman. Men hali taxmin qilmayman, lekin keyingi maqolada sinovdan o'tkazaman. Men Android TV yoki hatto Play Store-ga ega Chromebook-lar haqida gapiryapman. Hozircha, agar siz uni sinab ko'rmagan bo'lsangiz, do'kon ro'yxatidagi ushbu platformalarni o'chirib qo'yish yaxshi fikr bo'lishi mumkin.

WebAPK bilan ziddiyat

Agar siz allaqachon PWA-ni Chrome-dan o'rnatgan bo'lsangiz, siz Play Market tomonidan imzolangan URL-ga APK o'rnatgansiz, ammo bu sizning do'koningizni Ilovangiz ro'yxatiga kiritib qo'ymaydi va foydalanuvchiga ham uni o'rnatishga imkon bermaydi. Boshqa tomondan, xuddi shunday: ilova do'konga o'rnatilgan bo'lsa, Chrome brauzerdan foydalanuvchiga uni brauzerdan "qo'shish" ni taklif qilishdan to'xtamaydi. Menimcha, agar kelajakda WebAPK-da qandaydir tarzda Raqamli aktivlarga ulanish mavjud bo'lsa yoki WebAPK-ning dastur idiga mos keladigan bo'lsak, lekin bu yaqin orada ro'y bermaydi. Biz ko'ramiz.

Bir vaqtning o'zida ikkita Starbucks ilovasi: WebAPK va o'zimizning APK

Siz Chrome-ni WebAPK-ni taklif qilishni to'xtatishingiz va uning o'rniga tegishli_applications atributi va preferentsiya_related_applications Web App Manifest xususiyatlaridan foydalanib, do'kon ro'yxati ilovasini taklif qilishingiz mumkin. O'rnatilgan aloqador ilovalar API-si kelajakda ushbu qarama-qarshilikka yordam berishi mumkin.

Ishonchli veb-faoliyatni aniqlash (* UPDATE 2/7)

Agar biron sababga ko'ra, foydalanuvchi TWA-da ekanligini aniqlashni xohlasangiz, ikkita usul mavjud:

  • TWA yuklaydigan boshlang'ich URL-ga argument qo'shing
  • Referrer-dan foydalaning: TWA-da birinchi navigatsiya sahifasida document.referrer android-ilova sifatida o'rnatiladi: // ; Xuddi shu qiymat, HTTP sarlavhasida (HTTP spetsifikatorida xato yozilgan) ham o'rnatiladi

Birinchi PWApkingizni yaratish

Ha, men bilaman, men PWApk so'zini kashf qildim, lekin u juda yomon eshitilmaydi, to'g'rimi?

Ushbu maqola kirish va men darslar seriyasida ishlamoqdaman, shuning uchun sizga qiziqish bo'lsa, meni Twitterda kuzatib boring yoki mening yangiliklarga obuna bo'ling.

Bir necha yil oldin men Android uchun Native Web Apps-da video kurs o'tkazgan edim, ammo PWA-lar uchun nima qilish kerakligini aniq bilmasangiz ham, bu veb-ishlab chiquvchilarga Android ekotizimini tushunishga yordam beradi.

TWA-ga asoslangan APK-ni yaratishning eng oddiy usuli - ChromeLabs GitHub omboridan SVGOMG omborini namunasini klonlashtirish.

Siz git omborini klonlashingiz yoki yangi loyihani boshlashingiz mumkin.

Bizning holatlarimizda, biz yangi loyihani shunchaki tushunish va echim bilan nima sodir bo'lganligini tushuntirish uchun boshlaymiz.

Android Studio-da yangi loyiha yarating va "Faoliyat yo'q" ni tanlang, chunki biz qo'llab-quvvatlash kutubxonasi tomonidan taqdim etilgan ishonchli veb-faollikdan foydalanamiz.

Bo'sh loyihadan boshlaymiz

Ismni va Paket nomini tanlab, ma'lumotlarni to'ldiring. Paket nomi juda muhim, chunki u Android OT va do'konda bizning dasturimizning identifikatori bo'ladi. Men sizning PWA xostingizni zaxira tartibida va qo'shimcha ismni ishlatishni tavsiya qilaman, masalan: com.mypwa.calculator, agar sizning PWA https://mypwa.com/calculator bo'lsa

Baza sifatida API 19 (Android 4.4) yaxshi ko'rinadi, chunki u yaqin orada Chrome uchun talab qilinadigan minimal versiya bo'ladi. TWA-dagi ba'zi narsalar faqat API 23-da ishlaydi (Android 6.0), ammo qo'llab-quvvatlash kutubxonasi bunga g'amxo'rlik qiladi.

* UPDATE 2/5: Chrome rasmiy ravishda TWA faqat Android 4.4 KitKat-dan ishlaydi deb e'lon qildi. Faol Android foydalanuvchilarining taxminan 5 foizida ushbu xususiyat mavjud emas va ular URL satri yordamida Custom Tab ilovasiga qaytadi.

Eng kam API darajasini tanlash Google Play do'konida bizning PWA-ni ko'radigan qurilmalarni cheklaydi

Bog'lanish

Keyingi qadam TWA qo'llab-quvvatlash kutubxonasini qaramlik sifatida qo'shishdir, shuning uchun biz borib build.gradle nomi bilan ikkita faylni ochamiz.

Ikkita bosqichli konfiguratsiya fayllari mavjud, ulardan biri loyiha uchun, ikkinchisi Android ilovasi uchun

Project build.gradle-dan boshlab, biz barcha loyihalar> omborxonalariga quyidagi qatorni qo'shamiz:

maven {url "https://jitpack.io"}

Keyingi bosqich, biz Module build.gradle-ni ochamiz va qaramlik ostiga qo'shamiz:

amalga oshirish 'com.github.GoogleChrome: custom-tabs-client: e446d08014'

TWA-ni sozlash

Keyingi qadam Modulning build.gradle fayli ostida qolish va Ishonchli Veb Faoliyati uchun PWA sozlamalarini o'rnatish, defaultConfig-da biz quyidagilarni qo'shamiz:

manifestPlaceolders = [
        hostName: "app.starbucks.com",
        defaultUrl: "https://app.starbucks.com",
        launcherName: "Starbucks",
        propertyStatements: '[{"munosabatlar": ["delegate_permission / common.handle_all_urls"],' +
         '"target": {"namespace": "web", "site": "https://app.starbucks.com"}}]'
]

Bunday holda, men Starbucks PWA-ni misol sifatida keltiraman. Raqamli aktivlarni bog'lash jarayonidan ma'lumotga ega bo'lish uchun aktivStatements kaliti. Rivojlanish maqsadida biz ushbu qismni o'tkazib yuboramiz. Web App Manifest-da launcherName nomli xususiyat short_name-ga mos kelishi kerak.

Manifestni sozlash

Android ilovalari o'zlarining manifestiga ega va ular bizning Web App Manifestimizdan foydalanmaydilar, bu fayl ilova ostida> sizning Android loyiha qidiruvchingizda AndroidManifest.xml deb nomlangan namoyish. U erda o'z-o'zidan yopilgan Application XML elementini topasiz.

Bizda mavjud bo'lgan odatiy Android Manifest fayli

Bu erda biz android-ning qiymatini o'zgartirishimiz mumkin: $ {launcherName} yorlig'i bilan metadata-da oldindan o'rnatilgan launcherName-dan foydalanishimiz mumkin, shuning uchun bizda ilova nomi uchun bitta haqiqat manbai bo'ladi.

Keyingi qadam bu faylni sozlash, tegini ochishdan boshlab, ichiga quyidagi kodga o'xshash bir nechta bolalarni qo'shishimiz mumkin:




    

    
        
        
    

    
        
        
        
        
    

Quyidagi kod TWA-ni qo'llab-quvvatlash kutubxonasi, intent-filtr yordamida o'rnatadi, shunda sizning ilovangiz PWA-ga va Raqamli aktivlarga ulanish havolalarini oladi. Men Androidda joylashgan ilova nuqtai nazaridan u erda nima sodir bo'lishini tafsilotlarini o'tkazib yuboraman.

Sinxronlash vaqti keldi

Shu nuqtada, "Endi sinxronlash" tugmachasini bosib, Android Studio-ga barcha o'zgartirishlaringizni kiritishingiz kerak bo'ladi. Agar hamma narsa to'g'ri bo'lsa, hozirda biron bir xato bo'lmaydi.

Belgini almashtirish

Endi bizning ilovamizda faqat android ikonkasidan foydalaniladi, biz har xil piksellar zichligi uchun app> res> mipmap-dagi barcha fayllarni almashtirishimiz kerak. Ikkita versiya, kvadrat va yumaloq piktogramma mavjud. Dumaloq piktogrammalar Android 7.1-da yangi bo'lib, ularni o'tkazib yubormoqchi bo'lsangiz, android-ni olib tashlang: AndroidManifest.xml-da roundIcon-ga murojaat qiling.

Bizning Manifestimizdan piktogrammalarni qo'lda olib, ularni to'g'ri nom bilan mipmap pastki papkalarga nusxalashimiz kerak

Mavzuni sozlash

Va nihoyat biz app / res / values ​​/ styles.xml-ni ochib, PWA kabi ko'rinishi uchun mavzuni o'zgartirishimiz kerak:

Siz ilovaning ranglarini app / res / values ​​/ color.xml-dan o'zgartirishingiz mumkin, ammo men ularni TWA-da ko'rmadim.

Agar siz hozirda manifestda yo'nalishni cheklayotgan bo'lsangiz, AndroidManifest.xml-dagi elementiga ushbu cheklovni qo'shishingiz ham mumkin.

Sinashga tayyormisiz?

Biz PWApk-ni sinab ko'rishga tayyormiz, ammo bundan oldin biz Android uchun sinov qurilmasida yoki emulyatorida (Chrome 72+ bilan) Chrome uchun TWA ishlab chiqish rejimini o'rnatishimiz kerak.

Chrome sozlanmoqda

Sizda Chrome barqaror 72 versiyasi va ochiq Chrome: // bayroqlari borligini tekshiring. "Ildiz bo'lmagan qurilmalarda buyruq satrini yoqish" ni izlang va bayroqni yoqing. Siz Chrome-ni qayta ishga tushirishingiz kerak.

Keyinchalik, biz sinab ko'rmoqchi bo'lgan xost uchun Digital Asset Link-ni chetlab o'tadigan Chrome-ni sozlashimiz kerak, masalan: app.starbucks.com. (Kechirasiz Starbucks, lekin biz sizni yaxshi ko'ramiz, siz LOLni bilasiz)

Android-dagi Chrome uchun buyruq qatori argumentlarini o'zgartirish uchun biz Android-ning fayl tizimida matnli faylni yozishimiz kerak. Buni amalga oshirishning eng oddiy usuli adb (android debug körpü) orqali bo'lishi kerak (google-da, agar yo'q bo'lsa) va bajaring:

adb shell cat / data / local / tmp / chrome-buyruq qatori _ - raqamli-aktiv-havolani-tekshirish-for-url = "https://app.starbucks.com" ni o'chirib qo'ying.

Agar xohlasangiz, foydalanish uchun Chrome namunasida oddiy skript mavjud.

Yangi dasturni sozlash uchun Chrome to‘xtatib qo‘yishimiz kerak

Endi biz Chrome-ni qayta ishga tushirishimiz kerak. Lekin shunchaki dasturni multitask oynasidan o'ldirish emas. Sozlamalar / ilovalar / Chrome-ga o'ting va butun jarayonni tugating (Force Stop). Buni tayyor bo'lgunga qadar ikki marta qilishim kerak edi.

Bayroq yoqilganligi haqida ogohlantirish

Agar bu bajarilgan bo'lsa, siz har safar xromni ochganingizda, biz ushbu bayroq haqida hozir ogohlantiramiz va agar siz o'z ilovangizni Android Studio-dan ishlatsangiz, PWA-ni APK-ning ikonkasi va nomi ostida mustaqil ravishda ishga tushirishingiz mumkin.

Xulosa

Endi Google Play do'konida PWA-larni nashr etishimiz mumkin bo'lgan g'oya haqiqatan ham o'yinni o'zgartiradi. Aftidan biz hozirda API boshlang'ich bosqichidamiz va buning uchun bizga yanada yuqori darajadagi echim kerak. Men PWA-ning URL-manzilini kiritish va undan APK-ni olish uchun asbobni ko'rishni juda xohlayman. Raqamli Asset Link tekshirish tizimi tufayli bu shunchaki bo'lishi mumkin emas. Buni faqat Play Store o'zi yaratadigan bir xil WebAPK-dan foydalanib amalga oshirishi mumkin.

Men Google TWA-ni ma'qullaydimi yoki yo'qmi degan savolga duch keldim, shuning uchun ular hech bo'lmaganda maqolaning TWA qismini shubhali narsalardan olib tashlashmoqda.

Keling, Chrome 72 TWA ni uzoq safarning birinchi qadami sifatida olaylik!

Men Pol Kinlanga TWA-ni qo'llab-quvvatlagani uchun, savollarimga javob berganim uchun va deyarli har oy unga bu haqda xabar bergani uchun rahmat aytmoqchiman: P

Maksimiliano Firtman - mustaqil mobil + veb-dasturchisi, trener, notiq va muallif. U ko'plab kitoblarning, shu qatorda Reeilly Media tomonidan nashr etilgan Yuqori unumli mobil Internetning muallifi. Dunyo miqyosidagi konferentsiyalarda tez-tez ma'ruzachi bo'lib, u mobil-veb-hamjamiyatdagi faoliyati bilan tanilgan. U dunyoning eng yaxshi kompaniyalari uchun mobil, JavaScript, PWA va veb-ishlash bo'yicha treninglardan saboq beradi. U mustaqil maslahatchidir va ko'plab kompaniyalarda va Linked Learning / Lynda va Safari singari onlayn nashriyotlarda PWA-larda bir nechta seminar va kurslarni o'tkazgan. Twitter: @firt