Programos, naudojančios mobiliuosius daviklius, kūrimas
Naudojant jutiklius į programas galima įtraukti gausesnių funkcijų naudojantis telefono galimybėmis. Šiame straipsnyje sužinosite, kaip naudoti jutiklius savo mobiliajame įrenginyje naudojant „Power Apps”.
Kad tai atliktumėte, padarysite programos pavyzdį per du ekranus. Pirmajame ekrane bus rodoma dabartinė kompaso antraštė, platuma, ilguma, aukštuma ir tai, ar galimas NFC žymų nuskaitymas, siekiant gauti tesktinę informaciją. Antrame ekrane bus demonstruoja, kaip rodyti akcelerometro duomenis, kad būtų galima nustatyti įrenginio kampą X ir Y ašimis.
Norėdami nustatyti pirmojo ekrano scenarijų, įsivaizduokite, kad kuriate programą NFC pagrįstai maitėdų medžioklei. Kiekvienas dalyvis naudos programą, kad nuskaitytų NFC žymę, kuri jam pateiks kompaso antraštę, platumą ir ilgumą, nurodančias būsimą jų tikslo vietą. Toje vietoje dalyvis nuskaitys kitą žymę ir pakartos procesą, kol pasieks medžioklės pabaigą.
Antrame ekrane turi būti naudojamas įrankis, skirtas apytiksliam kampų matavimui. Antrajame ekrane dalyvis galės pastatyti arba laikyti įrenginį paviršiuje ir gauti kampus į įrenginio X ir Y ašis, taip pat matyti vaizdinę šių kampų reprezentaciją.
Peržiūrėkite šį vaizdo įrašą ir sužinokite, kaip sukurti programą, kurioje naudojami mobilieji jutikliai:
Būtinosios sąlygos
Šiai programai galima naudoti bet kurio lygio „Power Apps” licenciją, nes nenaudojami jokie duomenų ryšiai.
Mobilusis įrenginys, pavyzdžiui, mobilusis telefonas arba planšetinis kompiuteris su GPS ir spartintuvo funkcijomis, bus reikalingas, nes dauguma kompiuterių gali neturėti reikiamų jutiklių.
NFC turintis įrenginis yra reikalingas NFC nuskaitymo funkcijai. Taip pat laikoma, kad skenuotinos NFC žymės buvo iš anksto sukonfigūruotos taip, kad būtų sukuriamos tekstinės reikšmės toliau pateiktu pavyzdiniu formatu:
"<b>Heading: </b> 80 degrees <br> <b>Latitude: </b> 44.4604788 <br> <b>Longitude: </b> -110.82813759"
Bus rodomas tekstas HTML draugišku formatu programoje. NFC žymių sąranka nėra plačiai paaiškinta šiame straipsnyje, o NFC elementai gali būti ignoruojami, jei reikia; pagrindinis dėmesys skiriamas mobiliųjų jutiklių naudojimui„ Power Apps”.
Įtraukite įrenginio jutiklio išvesčiųa antraštę ir HTML tekstą
Antraštės žyma
Su redagavimui atidaryta programa „Power Apps” įtraukite Teksto žymą į ekraną nuvilkdami ir numesdami ją iš Įterpimo srities. Nustatykite jį viršutiniame kairiajame ekrano kampe ir modifikuokite šias ypatybes srityje Ypatybės:
Ypatybė | Reikšmė |
---|---|
Tekstinė žinutė | „Scavenger Hunt” |
Šrifto dydis | 24 |
Šrifto storis | „FontWeight.Semibold” |
Teksto lygiuotė | Lygiavimo.centras |
Plotis | „Parent.Width” |
Tada srityje Išplėstiniai modifikuokite šias ypatybes:
Ypatybė | Reikšmė |
---|---|
Spalva | RGBA(255, 255, 255, 1) |
Užpildyti | RGBA(56, 96, 178, 1) |
Tai suteiks ekrano antraštę.
Įrenginio jutiklio išvesčių HTML tekstas
Tada įtraukite HTML text valdiklį. Tai bus naudojama, kad visos įrenginio jutiklio išvestys būtų rodomos vienoje vietoje. Naudokite šį kodą HtmlText ypatybėje:
"<b><u>Current Location</u></b><br>
<br>
<b>Compass Heading: </b>" & Round(Compass.Heading, 2) & Char(0176) &
"<br>
<br>
<b>Lat: </b>" & Location.Latitude & "<br>
<b>Long: </b>" & Location.Longitude & "<br>
<b>Alt: </b>" & Round(Location.Altitude, 2) & " m"
Pakeiskite šias ypatybes Išplėstinėje srityje:
Ypatybė | Reikšmė |
---|---|
Dydis | 21 |
„BorderStyle” | „BorderStyle.Solid” |
„BorderThickness” | 2 |
Plotis | 560 |
Aukštis | 576 |
„PaddingTop” | 16 |
„PaddingRight” | 16 |
„PaddingBottom” | 16 |
„PaddingLeft” | 16 |
Jei išnagrinėsite, kas buvo įdėta į HtmlText, galite pastebėti, kad naudojami du jutiklių tipai.
Pirmasis yra Kompaso jutiklis, naudojantis Antraštės ypatybę, kad pateiktų kompaso antraštę iš įrenginio.
Antrasis yra Vietos jutiklis, pateikiantis Platumą, Ilgumą ir Aukštumą. Yra du vietos aspektai. Pirmiausia, jei naudojate tik vietą be taškų operatoriaus ir ypatybės, gausite įrašą, kuriame bus platumos, ilgumos ir aukštumos laukai. Antra, pagal numatytuosius nustatymus aukštumos ypatybė pateikiama metrais. Jei norite konvertuoti ją į pėdas ir colius, pakeiskite šią formulę:
Jei naudojate metrinę matavimo sistemą:
Round(Location.Altitude, 2) & " m"
Jei naudojate colių matavimo sistemą:
Round(Location.Altitude \* 3.2808, 2) & " ft"
Pastaba
Dauguma jutiklio ypatybių gali veikti netinkamai, jei peržiūrite programą „Power Apps Studio” viduje. Norėdami dirbti su jutiklio ypatybėmis testavimo tikslais, vietoj to naudokite mobilųjį telefoną.
Dabar nustatykite HTML tekstas valdiklio padėtį šalia apatinės ekrano pusės.
Įtraukite mygtuką NFC nuskaitymui ir HTML teskto valdikliui
NFC nuskaitymo mygtukas
Įtraukite mygtuką į programą ir nustatykite jo padėtį po Html tekstas valdikliu, kurį įtraukėte paskutiniu veiksmu, ir pakeiskite šias ypatybes Išplėstinėje srityje:
Ypatybė | Reikšmė |
---|---|
„OnSelect“ (pasirinkti) | „ClearCollect(colNFCScan, ReadNFC())” |
Tekstinė žinutė | „Nuskaityti NFC žymę” |
Ypatybės „OnSelect” kodas naudoja „ReadNFC”() funkciją, kuri suaktyvina NFC skaitytuvą. Tada joje saugoma tai, kas perskaityta iš NFC žymos rinkinyje, vadinamame „colNFCScan”. Šiame rinkinyje bus keturi laukai: „RTD”, Tekstas, „TNF” ir „URI”. Nors platus šių laukų išaiškinimas nėra šio staripsnio tikslas, trumpas paaiškinimas gali būti naudingas. „TNF” reiškia Tipo pavadinimo formatą ir yra naudojamas apibrėžti Įrašo tipo apibrėžimo arba „RTD” struktūrai, kuri apibūdina įrašo, esančio Teksto ir (ar) „URI” laukuose, tipą. „URI” reiškia Vieningąjį identifikatorių, kuris iš esmės yra ištekliaus adresas. Šiame pavyzdyje naudojamos žymės turi ne tik Teksto lauką, kuriame yra šios temos įvade pateiktas tekstas, bet ir „TNF” vertę, kuri lygi 1, „RTD” reikšmę „T” ir tuščią „URI” reikšmę.
Įtraukite HTML teksto valdiklį, kad būtų rodoma NFC nuskaitymo informacija
Įtraukite antrą HTML teksto valdiklį ir naudokite šią formulę HTMLText ypatybėje:
"<b><u>Next Destination</u></b><br>
<br>" &
First(colNFCScan).Text
Pakeiskite šias ypatybes Išplėstinėje srityje:
Ypatybė | Reikšmė |
---|---|
Dydis | 21 |
„BorderStyle” | „BorderStyle.Solid” |
„BorderThickness” | 2 |
Plotis | 560 |
Aukštis | 248 |
„PaddingTop” | 16 |
„PaddingRight” | 16 |
„PaddingBottom” | 16 |
„PaddingLeft” | 16 |
Be jokių NFC duomenų, valdiklis rodys Kita paskirties vieta. Nuskenavus NFC žymę, bus rodoma Kita paskirties vieta, o tada duomenys iš Teksto lauko – duomenyse, surinktuose iš nuskaitymo.
Jeigu NFC žymių duomenys buvo sukonfigūruoti taip, kaip aprašyta įvade, nuskenavęs vieną iš šių žymių, vartotojas pamatys kitos medžioklės vietos kompaso antraštės, platumos ir ilgumos reikšmes.
Patikrinti programą
Įrašykite ir publikuokite programą. Mobiliajame įrenginyje su reikiamais jutikliais atidarykite programą ir stebėkite kompaso antraštės, platumos, ilgumos ir aukštumos reikšmes. Išmėginkite pasivaikščiojimą pasisukdami įvairiomis kryptimis, kad pamatytumėte įvairių jutiklių rodmenų pakeitimus.
Paspauskite Nuskaityti NFC žymę, kad stebėtumėte NFC skaitytuvo valdiklį. Jei turite NFC žymę, kuri gali sukurti Teksto reikšmę, nuskenuokite žymę ir stebėkite tekstą programoje. Jei ne, pažymėkite Atšaukti.
Antro ekrano įtraukimas ir konfigūravimas
Įtraukite naują Tuščią ekraną programos kampų matavimo daliai.
Įtraukę ekraną, grįžkite į pirmąjį ekraną ir įtraukite Rodyklės Toliau piktogramą iš + Įterpti > Piktogramos > pasirinkite Rodyklės toliau piktogramą. Nustatykite ją viršutiniame dešiniajame ekrano kampe ir pakeiskite šias ypatybes Išplėstinėje srityje:
Ypatybė | Reikšmė |
---|---|
„OnSelect“ (pasirinkti) | Pereiti (2 ekranas) |
Spalva | RGBA(255, 255, 255, 1) |
Jei pervardijote antrą ką tik pridėtą ekraną, pakeiskite 2 ekrano pavadinimą Naršymo funkcijoje.
Peržiūrėkite programą pasirinkdami ką tik pridėtą piktogramą ir patikrinkite, ar ji pereina į tuščią ką tik pridėtą ekraną.
Įtraukite X ir Y kampų konfigūraciją
Įtraukite Teksto žymą į ekraną nuvilkdami ir numesdami ją iš Įterpimo srities. Nustatykite ją viršutiniame kairiajame ekrano kampe ir modifikuokite šias ypatybes srityje Ypatybės:
Ypatybė | Reikšmė |
---|---|
Tekstinė žinutė | „2 ašies lygis” |
Šrifto dydis | 24 |
Šrifto storis | „FontWeight.Semibold” |
Teksto lygiuotė | Lygiavimo.centras |
Plotis | „Parent.Width” |
Tada srityje Išplėstiniai modifikuokite šias ypatybes:
Ypatybė | Reikšmė |
---|---|
Spalva | RGBA(255, 255, 255, 1) |
Užpildyti | RGBA(56, 96, 178, 1) |
Tai suteiks antro ekrano antraštę.
Tada įtraukite Rodyklės atgal piktogramą iš + Įterpti > Piktogramos > pasirinkite Rodyklės atgal piktogramą. Nustatykite ją viršutiniame kairiajame ekrano kampe ir pakeiskite šias ypatybes Išplėstinėje srityje:
Ypatybė | Reikšmė |
---|---|
„OnSelect“ (pasirinkti) | Pereiti (1 ekranas) |
Spalva | RGBA(255, 255, 255, 1) |
Jei pervardijote pirmą ką tik pridėtą ekraną, pakeiskite 1 ekrano pavadinimą Naršymo funkcijoje.
Galiausiai įtraukite HTML text valdiklį. Tai bus naudojama, kad visos įrenginio jutiklio išvestys būtų rodomos vienoje vietoje. HTML teksto ypatybėje naudokite šią formulę:
"<b><u>Angles:</u></b><br>
<br>
<table width='100%'>
<tr>
<td width='50%'><b>X: </b>" & Abs(Round(Acceleration.X * (90 / 9.81),
0)) & Char(0176) & "</td>
<td width='50%'><b>Y: </b>" & Abs(Round(Acceleration.Y * (90 / 9.81),
0)) & Char(0176) & "</td>
</tr>
</table>"
Pakeiskite šias ypatybes Išplėstiniame skirtuke:
Ypatybė | Reikšmė |
---|---|
Dydis | 21 |
„BorderStyle” | „BorderStyle.Solid” |
„BorderThickness” | 2 |
Plotis | 560 |
Aukštis | 168 |
„PaddingTop” | 16 |
„PaddingRight” | 16 |
„PaddingBottom” | 16 |
„PaddingLeft” | 16 |
Šio valdiklio vietą nustatykite programos ekrano viršuje.
Jeigu panagrinėsite, kas buvo įrašyta į „HtmlText”, galbūt pastebėsite, kad jis naudoja Spartos jutiklį su „X” ir „Y” ypatybėmis. Taip pat yra „Z” ypatybė, kurios šiame scenarijuje nenaudojame.
Šis jutiklis aptinka gravitacines jėgas įrenginyje per tris plokštumas. Paimant mobilųjį telefoną kaip pavyzdį, įsivaizduokite liniją, išeinančią už telefono kraštų. Tai būtų „X” ašis. Pakėlus dešinę telefono pusę pus pateikta teigiama reikšmė, o pakėlus kairiąją pusę – neigiama. Linija, išeinanti už telefono viršaus ir apačios, atitinka „Y” ašį. Pakėlus telefono viršų pus pateikta teigiama reikšmė, o pakėlus apačią – neigiama. Galiausiai, linija, išeinanti iš ekrano ir telefono apačios, atitinka „Z” ašį. Jei telefono ekranas bus viršuje, bus pateikta teigiama reikšmė, o jei jis bus apačioje – neigiama.
Akcelerometras matuos jėgas, veikiančias tiek įrenginio judėjimą, pavyzdžiui, jei numesite įrenginį, tiek poilsį, pavyzdžiui sukant įrenginį viena ar daugiau ašių, aprašytų anksčiau. Poilsio teorinės reikšmės turi būti tarp 0 ir +/- 9.81 m/s2, kai 0 reiškia, jog sąlyginė ašis yra lygiagreti Žemei, kai jutiklio neveikia gravitacinė jėga, o 9.81 nuskaitymas reiškia, kad sąlyginė ašis yra lygiagreti Žemei ir jutiklį veikia pilna gravitacinė jėga.
Žiūrėdami į ką tik pridėto HTML tekstas valdiklio kodą, pastebėsite šį skyrių:
Abs(Round(Acceleration.X * (90 / 9.81), 0))
Šioje formulėje pirmiausia Sparta ašyje „X” yra padauginama iš (90 / 9.81). Tam, kad jutiklio rodmenys būtų konvertuoti į laipsnius, naudojama didžiausia teorinė vertė. Pateikiama reikšmė, lygi 90, nes esant didžiausiai teorinei reikšmei poilsyje, įrenginys būtų statmenas Žemei toje ašyje, o tai reiškia 90 laipsnių matavimą.
Tada ši reikšmė laipsniais suapvalinama iki nulinės dešimtainės skilties, kad būtų pateikiama sveikojo skaičiaus laipsnių reikšmė. Galiausiai, absoliuti to suapvalinto skaičiaus reikšmė apskaičiuojama norint pateikti teigiamą skaitymo rezultatą. Todėl nesvarbu, iš kurios pusės matuojamas kampas.
Pastaba
Aukščiau pateiktos reikšmės yra apytikslės ir jos neatspindi tikslių matavimų.
Įtraukite lygio vaizdinius elementus
Atlikdami šį veiksmą kai kuriuos valdiklius naudosime nestandartiniais būdais, kad pasiektumėme vaizdinį tikslą.
Žiedinis į burbulą panašus vaizdinis elementas
Iš pradžių į ekraną įtraukite Mygtuko valdiklį, pervadinkite jį į „btnCircleLevel” bei pakeiskite šias ypatybes Išplėstinėje srityje:
Ypatybė | Reikšmė |
---|---|
Tekstinė žinutė | "" |
„BorderColor” | RGBA(56, 96, 178, 1) |
„FocusedBorderThickness” | 2 |
Užpildyti | Permatomas |
„DisabledFill” | Pats.užsipildantis |
X | („Parent.Width” - „Self.Width”) / 2 |
Y | („Parent.Height” - „Self.Height”) / 2 |
Plotis | 400 |
Aukštis | „Self.Width” |
Dėl šių pakeitimų ekrano centre turėtų atsirasti apvalus mygtukas, kurio negalima paspausti dėl to, kad jis nėra suaktyvintas.
Tada įtraukite apvalią formą, nustatykite jos kraštinės kailį į 400 ir išplėstinėje srityje pakeiskite šias ypatybes:
Ypatybė | Reikšmė |
---|---|
„FocusedBorderThickness” | 0 |
X | („Parent.Width” - „Self.Width”) / 2 + („Round(Acceleration.X” / 9.81 * 90, 0) / 90 * „btnCircleLevel.Width” / 2) |
Y | („Parent.Height” - „Self.Height”) / 2 + („Round(Acceleration.Y” / 9.81 * 90, 0) / 90 * „btnCircleLevel.Width” / 2) |
Plotis | 42 |
Aukštis | „Self.Width” |
Plotis | 400 |
Aukštis | „Self.Width” |
Ypatybės „X” ir „Y” leidžia Žiedinei formai judėti programos ekrano centre, sąlyginai pakeisti Spartintuvo jutiklio reikšmes, tačiau jos turi išlikti žiedinėje „btnCircleLevel” srityje.
Į X ir Y ašį panašios burbulo tipo vaizdinės priemonės
Įtraukite Slankiklio valdiklį į programą, pervadinkite jį į „sldXValue” bei pakeiskite šias ypatybes Išplėstinėje srityje:
Ypatybė | Reikšmė |
---|---|
Min. | „-90” |
Didžiausia | 90 |
Numatytoji reikšmė | Suapvalinti („Acceleration.X” * (90 / 9.81), 0) |
„ValueFill” | „Self.RailFill” |
X | („Parent.Width” - „Self.Width”) / 2 |
Y | „btnCircleLevel.Y” + „btnCircleLevel.Height” + 30 |
Plotis | „btnCircleLevel.Width” |
Aukštis | 70 |
Šis Slankiklio valdiklis rodys kampą, panašų į tai, kaip veikia burbulo lygis: Rankena pasislinks į pakeltą įrenginio pusę, panašiai kaip oro burbulas burbulo lygiu.
Tada nukopijuokite „btnCircleLevel” pasirinkdami jį ir paspaudę „Ctrl + C” bei „Ctrl + V”. Pervadinkite valdiklį į „btnXValueOverlay” ir pakeiskite šias ypatybes Išplėstinėje srityje:
Ypatybė | Reikšmė |
---|---|
X | „sldXValue.X” - „sldXValue.HandleSize” / 2 |
Y | „sldXValue.Y” |
Plotis | „sldXValue.Width” + „sldXValue.HandleSize” |
Aukštis | „sldXValue.Height” |
Šie pakeitimai nustatys jį virš „sldXValue” valdiklio, taip neleidžiant vartotojui keisti jo vertės ir suteikiant vaizdinę sieną.
Nukopijuokite ir įklijuokite „sldXValue” naudodami tą patį metodą, kai kopijavote „btnCircleLevel”. Pervardykite ją į „sldYValue” ir pakeiskite šias ypatybes:
Ypatybė | Reikšmė |
---|---|
Išdėstymas | „Išdėstymas.Vertikaliai” |
X | „btnCircleLevel.X” - „Self.Width ”- 30 |
Y | („Parent.Height” - „Self.Height”) / 2 |
Plotis | „sldXValue.Height” |
Aukštis | „sldXValue.Width” |
Kopijuokite ir įklijuokite „btnXValueOverlay”, pervardinę ją į „btnYValueOverlay”, keisdami šias ypatybes:
Ypatybė | Reikšmė |
---|---|
X | „sldYValue.X” |
Y | „sldYValue.Y” - „sldYValue.HandleSize” / 2 |
Plotis | „sldYValue.Width” |
Aukštis | „sldYValue.Height” + „sldYValue.HandleSize” |
Taip užbaigiate į burbulą panašias lygio vaizdines priemones.
Programos lygio tikrinimas
Įrašykite ir publikuokite programą. Mobiliajame įrenginyje su reikiamais jutikliais atidarykite programą ir pereikite į ekraną naudodami burbulo lygio vaizdinius elementus. Judinkite šį įrenginį iš kairės į dešinę, tada aukštyn ir žemyn, o galiausiai – visomis kryptimis, paisant kampų ypatybių pokyčių, taip pat ir vaizdinių pokyčių. Suraskite kampuotą paviršių įrenginiui pastatyti ir dar sykį įsidėmėkite kampus ir vaizdinius elementus.
Taip pat žr.
Atsiliepimai
https://aka.ms/ContentUserFeedback.
Jau greitai: 2024 m. palaipsniui atsisakysime „GitHub“ problemų, kaip turiniui taikomo atsiliepimų mechanizmo, ir pakeisime jį nauja atsiliepimų sistema. Daugiau informacijos žr.Pateikti ir peržiūrėti atsiliepimą, skirtą