Mundarija:

Kengaytirilgan haqiqat veb -brauzeri: 9 qadam
Kengaytirilgan haqiqat veb -brauzeri: 9 qadam

Video: Kengaytirilgan haqiqat veb -brauzeri: 9 qadam

Video: Kengaytirilgan haqiqat veb -brauzeri: 9 qadam
Video: Установка маяков под штукатурку. Углы 90 градусов. #12 2024, Iyun
Anonim
Kengaytirilgan haqiqat veb -brauzeri
Kengaytirilgan haqiqat veb -brauzeri
Kengaytirilgan haqiqat veb -brauzeri
Kengaytirilgan haqiqat veb -brauzeri

Bugun biz Android uchun kengaytirilgan haqiqat veb -brauzerini yaratamiz.

Bu fikr ExpressVPN mendan homiylik qilingan YouTube videosini suratga olishimni so'raganda boshlandi. Bu mening birinchi ishim bo'lgani uchun, men ularning mahsulotiga mos keladigan narsani qilmoqchi edim. Darhol men o'yladim, oh, men kengaytirilgan reallik veb -brauzerini yarataman, shunda biz Internetda ARda VPN orqali ko'rishimiz mumkin. Bu qiyin bo'lishi mumkin emas, to'g'rimi? Noto'g'ri. Men o'zimga ushbu loyiha uchun cheklovlar qo'ydim, chunki men undan yangi narsalarni o'rganish uchun foydalanmoqchi edim.

Birinchi raqam, men Android uchun bo'lishini xohlardim, chunki men har doim IOS bilan ishlayman.

Ikkinchi raqam, men hech qanday pullik API -dan foydalanishni xohlamadim, men hamma bu loyihani yuklab olishlarini va Internetda hech narsa to'lamasdan ishga tushirishlarini xohlardim. Shunday qilib, IBM Watson, Google API va Unity Asset do'konidan hech narsa yo'q.

QANI BOSHLADIK!

1 -qadam: Birinchi narsa birinchi

Birinchi narsalar birinchi
Birinchi narsalar birinchi

Men ishlashni xohlagan birinchi narsa - bu matnni gapirish uchun yaxshi echim, shuning uchun biz o'z ovozimiz bilan onlayn qidiruvlarni amalga oshirishimiz mumkin edi. O'ylaymanki, ovoz, hech bo'lmaganda, qo'lni kuzatishda yaxshi echim bo'lmaguncha, ARda o'zaro ta'sir qilishning ajoyib usuli. Bilaman, Android -da matnli funksiyalar uchun ona tili bor, shuning uchun tez Google qidiruvi Unity uchun ba'zi plaginlarni topishga yordam beradi.

Men bu plaginni birinchi marta birlik uchun oldim:

www.google.com/search?rlz=1C5CHFA_enUS816U…

Men buni sinab ko'rdim va u juda yaxshi ishladi. Yagona muammo shundaki, siz uni ARCore bilan ishlatganingizda, u mahalliy qalqib chiquvchi oynani yaratadi va Unity fonida ko'rinadi va siz kuzatishni yo'qotasiz.

Bu idealdan kam edi.

2 -qadam: Android uchun matn bilan ishlashni o'rganish

Android uchun matnli nutqni olish
Android uchun matnli nutqni olish

Shunday qilib, men mahalliy pop -up qutisini ochmagan va ko'p narsani topa olmaydigan ba'zi plaginlarni qidirishni boshladim, lekin oxir -oqibat bu android kutubxonasini topdim:

github.com/maxwellobi/Android-Speech-Recog…

Endi men Android -ning mahalliy rivojlanishi haqida hech narsa bilmayman, lekin men o'zimga qarshi chiqmoqchi edim, shuning uchun men bu kutubxona uchun bir nechta ko'prik kodini yozib, uni Unity -da ishlatish uchun Android plaginiga aylantirmoqchi bo'ldim. soatlab umidsizlikka.

Keyin nihoyat ishladi …

3 -qadam: Olingan saboqlar

Olingan darslar
Olingan darslar

Shunday qilib, men bu jarayonda o'rgangan ikkita narsa bor, ular birdamlik uchun Android plaginini qanday yasashni darhol aniqlab bo'lmaydi.

Birinchi raqam, agar sizning plaginingiz biron bir qiziq narsa qilsa, sizga Android ilovasi kontekstidan ma'lumot kerak bo'ladi. Buni Android loyihangizga kutubxona sifatida Unity o'rnatishdan class.jar faylini qo'shish orqali qilishingiz mumkin. Shunday qilib, fayl loyihasi tuzilishiga o'ting va keyin ilova moduli uchun bog'liqliklar yorlig'ini tanlang. Bu erda siz jar faylini qo'shish uchun ortiqcha tugmasini bosishingiz mumkin. Unity tuzilishi, ijro etish dvigatellari, androidplayer, variatsiyalar, mono, ishlab chiqish, sinflar va nihoyat class.jar -ga o'ting. Faqat kompilyatsiya qilish uchun maydonni o'zgartiring. Endi, yangi java faylida quyidagilarni qilishingiz mumkin:

UnityPlayer.currentActivity.getApplicationContext ();

va bu ma'lumotni sizga kerak bo'lgan joyda ishlating.

Keyingi g'alati masala shundaki, bu ovozli funksiya faqat asosiy mavzuda ishlaydi, aks holda siz xatolarga duch kelasiz. Unity -da buni amalga oshirish uchun siz yuqoridagi rasmdagi kabi AndroidJavaRunnable sifatida UI Thread -da ishlashini va funktsiyalarini aytishingiz kerak.

4 -qadam: kurash

Kurashlar
Kurashlar

Bu vaqtda men o'zimni Android mutaxassisi deb o'ylayman.

Men Internetda android ishlab chiqaruvchilari uchun ishlayapman, men Android stikerlari va futbolkalariga buyurtma beraman. Hayot go'zal. Endi men Unity -da veb -sahifani qanday yaratishni bilishga o'tishga tayyorman. Biroz tadqiqot o'tkazgandan so'ng, men qarardimki, Android WebView -dan foydalanish mumkin. Bu brauzerda hamma narsani yuklamasdan, Android ilovasi ichida o'zaro ta'sir qiladigan veb-saytlarni ko'rsatishga imkon beruvchi Android klassi. Asosan, siz foydalanuvchilarni ilovangizda ushlab turishingiz mumkin. Biznesning birinchi tartibi - bu ochiq manba manbasi bo'lgan kimdir birlashma plaginini yaratganligini ko'rish. Men avval ushbu plaginni sinab ko'raman:

github.com/gree/unity-webview

lekin u faqat WebView -ni Unity GUI qatlamiga ko'rsatadi, bu ishlamaydi. Keyin VR uchun ushbu plaginni topaman:

github.com/IanPhilips/UnityAndroidVRBrowse…

Bu sizga WebView -ni teksturaga va hatto o'zaro ta'sirli qilib ko'rsatishga imkon beradi, bu juda yaxshi, men buni sinab ko'rmagunimcha va bu mening barcha bosishlarimni birlikdan to'sib qo'yganini bilgunimcha javob deb o'yladim.

5 -qadam: Chizma taxtasiga qaytish

Chizma taxtasi sahifasiga qaytish
Chizma taxtasi sahifasiga qaytish

Buning uchun men o'z plaginimni yaratishga harakat qilaman, chunki menga faqat veb -sayt tasvirini birlikka yuborish kerak. Bu borada tadqiqotlar olib borganimda, men android tuvalini bitmapga saqlashim, keyin uni pngga kodlashim va o'sha baytlarni Unity -ga yuborishim mumkinligini bilib oldim, u erda baytlar majmuasi bilan yangi tekstura yaratiladi va men yaxshiman. Yana bir necha soatlik umidsizlikdan va mening borligimni so'roq qilishdan keyin …

Nihoyat ishladi.

Endi men veb -saytdan ekran tasvirini olaman, shuning uchun uning arcore bilan qanday ishlashini ko'rib chiqaylik …

Yo'q.

Men aytmoqchimanki, men eng yangi telefon bo'lmagan galaxy s7 dan foydalanmoqdaman, lekin bu WebView materiallari hali ham butun ilovani muzlatib qo'yadi va umuman yaroqsiz. Menimcha, WebView va ARCore ikkalasi ham asosiy mavzuni ortiqcha yuklaydilar, lekin men bilmayman. Chizma chizig'i sahifasiga qaytish. Agar biz bu ishni bajarishni istasak, biz og'ir yukni serverga yuklaymiz. Googling bilan shug'ullanganingizdan so'ng, siz Node.js kutubxonasi bo'lgan WebShot deb nomlangan veb -saytning skrinshotini olishingiz mumkin, u Phantom JS -ni ishlatadi, bu skriptli boshsiz brauzer.

6 -qadam: Nihoyat, biz bir joyga boramiz

Nihoyat, biz bir joyga boramiz
Nihoyat, biz bir joyga boramiz

Endi men Node.js -ni qanday ishlatish kerakligini tushunishim kerak.

Ma'lum bo'lishicha, siz ma'lum bir port raqamini tinglaydigan Node.js skriptini yaratishingiz mumkin va u portga tegsa, u ba'zi ma'lumotlarni qaytarishi mumkin. Biz buni 3000 portda eshitiladigan salom olam skriptini yaratish orqali sinab ko'rishimiz mumkin. Biz skript bilan katalogga CD ni yozib, tugunni, so'ngra skript nomini ishga tushirishimiz mumkin. Agar biz IP -manzilimizga o'tib, keyin 3000 -sonli portni brauzerda ko'rsatsak, u salom olamga qaytadi. Endi men tugunni yaxshi bilsam, men uni serverimda ishlashim mumkin, men o'z veb -saytlarimni hawkhost.com saytida joylashtiraman. Men serverga SSH kirgizaman va node.js salom olamining bir nechta skriptlarini ishlatishga harakat qilaman … va hech narsa ishlamayapti. Yana bir necha soatlik chalkashliklardan so'ng, men bilaman, mening xosting serverimda faqat ikkita port mavjud, ya'ni 3000 va 12001.

Shunday qilib, ushbu portlar va IP -xosting serverlarimdan foydalanib, men ishlay olaman. Keyin men WebShot modulini o'rnataman va URL manzilini yuboradigan kichik skript yarataman va u menga o'sha veb -manzilda veb -sayt tasvirini qaytaradi. Endi men bu tugun skriptini ishga tushirishim va Unity -dan serverimning IP va port raqamiga http POST so'rovini yuborishim mumkin, bu menga o'sha veb -sayt tasviri bo'lgan bayt qatorini qaytaradi. Endi yana bir muammo - terminalni yopganimda jarayon tugaydi va tinglashni to'xtatadi. Men yana tadqiqotlar olib boraman va abadiy deb nomlangan modulni topaman. NPM abadiy o'rnatiladi va endi men abadiy harakat qila olaman va skriptni abadiy ishga tushiraman va men tizimga kirguncha va uni qayta to'xtatguncha ishlashda davom etadi.

7 -qadam: u ishlaydi

Ishlamoqda!
Ishlamoqda!

Ajoyib. Ammo bu etarli darajada sovuq emas.

ARda Internetni ko'rib chiqish qiymati haqida o'ylayotganimda, bu bo'sh joy qo'shilishidan kelib chiqadi. Biz endi bitta ekran bilan chegaralanib qolmaymiz, shuning uchun men o'zimning qidiruv izimni tasavvur qilishimga imkon beradigan narsa qilishni xohlayman. Keling, birinchi qidiruv sahifasini yuklaymiz, so'ngra bu sahifani skanerlaymiz va har bir qidiruv natijasini havola sifatida chiqaramiz, keyin biz uni asosiy ekranimizning tepasida rasm sifatida yuklay olamiz. Biz buni Google natijalarining birinchi sahifasini qirib tashlaydigan va uni abadiy ishlatadigan boshqa Node.js skriptidan foydalanishimiz mumkin. Buni Google qidiruv APIsi yordamida ancha samaraliroq qilish mumkin edi, lekin bu loyihaning ikkinchi qoidasi pullik API emas edi, shuning uchun biz hozircha shunday qilamiz. Endi bizda har bir havola uchun rasmlar bor, biz ularni har bosganimizda va kattalashganda ularni katta ekranga yuklashimiz mumkin, bizda bu erda kichik kichkina brauzer bor. Bu to'liq ishlamaydi, lekin men buni qabul qilaman. Yaxshi, agar siz ushbu loyihani o'zingiz bajarishni xohlasangiz, mening Github -ga o'ting va expressVPN loyihasini yuklab oling:

github.com/MatthewHallberg/ARBrowserExpres…

8 -qadam: Hammasini ishga soling

Hamma ishga kirishadi
Hamma ishga kirishadi

Uni Unity -da oching va keling, hamma narsani kompyuteringizda ishga tushiring. Avval siz kompyuteringizning IP -manzilini topishingiz kerak, shuning uchun agar siz Mac -da bo'lsangiz, IP -ni ko'rsatish uchun wifi belgisini bosing.

Birlikka qayting va brauzer tekshiruvi skriptini oching va u erda IP manzilingizni kiriting va uni clipboardga nusxalash. NodeScripts papkasini toping va uni ish stoliga qo'ying, papkani oching va ikkala kengaytmani.js ga o'zgartiring. Har bir skriptni oching va IP manzilini IP -ga o'zgartiring. Endi terminalni oching va biz ba'zi narsalarni o'rnatishimiz kerak. Agar sizda HomeBrew bo'lmasa, uni o'rnating.

-burni o'rnatish tugunlari

-npm veb -rasmini o'rnating

-npm o'rnatish tekis

-npm o'rnatish uyushmasi

-npm cheerio -ni o'rnating

Endi biz har ikkala skriptni nodavlat jildiga ishga tushiramiz va getimage.js tugunini qilamiz, so'ngra yangi terminal oynasini ochamiz va getlinks.js tugunini bajaramiz. Agar biz o'yinni bossak, hammasi yaxshi ishlashi kerak. Shuningdek, biz telefonga yuklash uchun fayllarni o'rnatish, sozlamalarni o'rnatish va qurish va ishga tushirish -ni bosishimiz mumkin! Agar siz serverlarni to'xtatmoqchi bo'lsangiz, c tugmachasini bosing yoki q terminalini yopib qo'ying.

BO'LDI SHU!

Tavsiya: