Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Az alábbi specifikáció bemutatja, hogyan implementálhat adaptív kártya renderelőt bármely natív felhasználói felületi platformon.
Fontos
Ez a tartalom egy folyamatban lévő munka, és előfordulhat, hogy hiányzik néhány részlet. Kérjük, tudassa velünk, ha kérdése vagy visszajelzése van.
JSON elemzése
Hibafeltételek
- Az elemzőnek ellenőriznie kell , hogy az érvényes JSON-tartalom-e
- Az elemzőnek ellenőriznie kell a sémát (a szükséges tulajdonságokat stb.)
- A fenti hibákat jelenteni kell a gazdaalkalmazásnak (kivétel vagy azzal egyenértékű)
Ismeretlen típusok
- Ismeretlen "típusok" észlelése esetén azokat EL KELL HAGYNI az eredményből.
- A hasznos adatok módosításait (a fentiekhez hasonlóan) figyelmeztetésként kell jelenteni a gazdaalkalmazásnak
Ismeretlen tulajdonságok
- Az elemzőnek további tulajdonságokat kell tartalmaznia az elemeken
További szempontok
- A
speakMAY tulajdonság SSML-korrektúrát tartalmaz, és a megadott módon kell visszaadni a gazdaalkalmazásnak
Gazdagép konfigurációjának elemzése
- TEENDŐ
Verziókezelés
- A renderelőnek implementálnia kell a séma egy adott verzióját.
- A
AdaptiveCardkonstruktornak alapértelmezett értéket kell adnia aversiontulajdonságnak az aktuális sémaverzió alapján - Ha egy renderelő a
AdaptiveCard-ben talál egyversiontulajdonságot, amely magasabb, mint a támogatott verzió, akkor köteles afallbackText-t visszaadni.
Renderelés
Egy AdaptiveCard egy body-ből és egy actions-ből áll. A body egy CardElement gyűjtemény, amelyet a renderer sorrendben számba vesz és renderel.
- Minden elemnek a szülőszélességig kell nyúlnia (gondoljon
display: blockHTML-ben). - A megjelenítőnek figyelmen kívül kell hagynia az ismeretlen elemtípusokat, és folytatnia kell az adatcsomag renderelését.
Text, TextBlock és RichTextBlock
- A TextBlock-nak egyetlen sort kell felvennie, kivéve, ha a
wraptulajdonságtrue. - A szövegblokknak három ponttal kell levágnia a felesleges szövegeket (...)
Markdown
- Az adaptív kártyák lehetővé teszik a Markdown egy részhalmazát, és támogatni kell a
TextBlock. - A RichTextBlock NEM támogatja a Markdownt, és a közzétett tulajdonságok használatával kell stílust használnia.
- Teljes markdown-követelmények megtekintése
Formázási függvények
-
TextBlocklehetővé teszi a DÁTUM/IDŐ formázási függvényeket , amelyeket minden renderelőn támogatni kell . - Minden hiba esetén meg kell jeleníteni a nyers sztringet a kártyán. Nem próbálkozott barátságos üzenettel. (A cél az, hogy a fejlesztő azonnal értesüljön arról, hogy probléma van)
Képek
- A renderelőnek ajánlott lehetővé tenni, hogy a gazdaalkalmazások tudják, mikor töltötték le az összes HTTP-képet, és a kártya "teljesen megjelenített".
- A renderelő köteles megvizsgálni a gazdagép konfiguráció
maxImageSizeparaméterét HTTP-képek letöltésekor - A renderelőnek támogatnia
.pngkell és.jpeg - A renderelőNEK támogatnia
.gifkell a képeket
Speciális elrendezési viselkedés
A renderelőnek a következő viselkedésre kell ügyelnie a kártyaelemek renderelésekor a jelen dokumentumban említett attribútumok tekintetében.
A Korlátozásokat a megjelenítőnek kezelnie kell, figyelembe véve a kártyaelemek és azok alárendeltjei konfigurációját, mint például a margók, a párnázás, a magasság és a szélesség stb.
Szélesség
- Engedélyezett értékek –
auto,stretchés rögzített értékek apixelsésweightszempontjából. -
autoelegendő helyet biztosít a szélesség bővítéséhez (támogatja a minimális bővítést) -
stretcha fennmaradó szélességet veszi fel (támogatja a maximális bővítést)
Az alábbi forgatókönyvek azt ismertetik, hogyan érintik a kényszereket az oszlopok különböző szélességi kombinációi
auto és stretch
-
autoésstretchszélességű oszlopok.
- Az első szélességű
autooszlop elegendő helyet foglal a tartalom megjelenítéséhez, a második szélességűstretchoszlop pedig a teljes területet elfoglalja.
- Csak
stretchszélességű oszlopok
- Az csak stretch szélességű oszlopok egyenlő elosztás után foglalják el a fennmaradó területet.
-
auto,stretchésauto
Az első és a harmadik oszlopszélesség először az elemek megfelelő elhelyezésére van beállítva, a második pedig a feszített szélességű oszlop elfoglalja a fennmaradó helyet.
- Az elemek szélességi oszlopokkal való megjelenítésének
autosorrendje
- Az olyan oszlopok, amelyek
auto-vel rendelkeznek, automatikusan elegendő helyet biztosítanak a tartalom rendereléséhez. - Képnézetek esetén a képek leskálázása a fennmaradó szélességhez igazodik.
-
Jegyzet: A képek csak a
stretchésautoképméreteknél lesznek leskálázva, de a képpontokban megadott rögzített szélesség és magasság esetén nem.
weights és pixels
-
weightéspixelszélességgel rendelkező oszlopok kombinációja.
- A fenti kártya három oszlopot tartalmaz a következő szélességű konfigurációval :
- \
, \ , \ - A 2. oszlop szélességét a
pixel value - Az 1. és a 3. oszlop szélessége a
weightsés a számítottweight ratioalapján van beállítva.
- Oszlopok
weight,pixel widthésautoattribútumokkal
- A fenti kártya négy oszlopot tartalmaz a következő szélességi konfigurációval :
-
Column1: Weight 50,Column2: 100px,Column3: Weight 50ésColumn4: auto - Megjegyzés: A képek nézete úgy csökkenti az oszlop szélességét, hogy az igazodjon a fennmaradó helyhez.
A szélességi attribútummal rendelkező elemek megjelenítési sorrendje
px > weight > auto > stretch
Magasság
Engedélyezett értékek – auto és stretch
Az alábbi forgatókönyvek azt írják le, hogy a kártyaelemek különböző magassági kombinációi hogyan befolyásolják a korlátozásokat
- Az elemek függőlegesen szabadon tágulnak, ha a kártya nem rögzített magasságú.
- Mindkét oszlop elegendően függőlegesen terjeszthető, függetlenül a
autoésstretchértékektől. - Ez azzal történik, hogy a
wrapszövegblokk tulajdonsága le van tiltva.
- Az alábbi kártyán engedélyezve van a
wraptulajdonság a szövegblokkhoz.
Térköz és elválasztó
- Minden
spacingelem tulajdonsága befolyásolja az AKTUÁLIS elem és az ELŐTTE lévő elem közötti térközt. - A térközt CSAK akkor kell alkalmazni, ha valójában egy elem van előtte. (Például nem vonatkozik a tömb első elemére)
- A renderelőnek meg kell keresnie az aktuális elemhez alkalmazott enum érték térközéből
hostConfighasználandó térközt. - Ha az elem
separatorértéketrue, akkor látható vonalat kell rajzolni az aktuális elem és az előtte lévő elem között. - Az elválasztó vonalat
container.style.default.foregroundColorkell húzni. - Az elválasztó csak akkor rajzolható meg, ha az elem NEM az első a tömbben.
-
Térköz – Engedélyezett értékek
none,small,default,largemediumésextra largepadding
- A térköz attribútum térközt ad az elem és az előző elem közé.
- A Térköz attribútumnak nincs hatása, ha ez a nézettároló első eleme.
- A nyíllal jelölt elemek a testvérek első elemei, így a térközöknek nincs hatása.
- Elválasztó – Lehetséges értékek (be- és kikapcsolt kapcsoló)
- Egy elválasztó vonalat rajzol az elem tetején.
- Térköz és elválasztó kombináció
- Az alábbiakban a térköz és a szeperátor kombináció korlátait szemléltetjük.
- A teljes térköz távolsága a megadott értékekhez képest megmarad.
- A szeparátor a távolság közepén, félúton kerül hozzáadásra.
[Megjegyzés. Meg kell erősíteni a távolságot, ahol a szeparátort a térköz területére beillesztik. Úgy tűnik, mintha a középső lenne.
Konténertípusok
- Stílustippeket biztosít tárolókhoz, például oszlopokhoz és oszlophalmazokhoz.
- Engedélyezett értékek
none,default,emphasis,good,attentionéswarningaccent - Ezek az előre definiált stílusbeállítások kitöltést biztosítanak a tárolóban lévő elemekhez és a háttérszínhez
- Az A kártya stílusbeállítások nélkül szemlélteti az oszlopokat és oszlopkészleteket
- A B kártya illusztrál egy oszlopkészletet a figyelem stílussal. Vegye észre az oszlopkészlet tartályának párnázását és a háttérszín változását.
- A C kártya csak stílust tartalmazó oszlopokat ábrázol. Az előzőhöz hasonlóan az oszlop tartalmaz párnázást és háttérmódosítást is.
- A D kártya stílusbeállításokkal szemlélteti az oszlopokat és az oszlopkészleteket.
[Megjegyzés. Meg kell vizsgálni, hogy a kitöltési érték hogyan van meghatározva. A gazdagép határozza ezt meg? ]
Vérzik
- Ez a tulajdonság lehetővé teszi, hogy a tároló, például az oszlopok és az oszlopkészlet kifutódjon a szülőn keresztül.
- Lehetséges értékek
onésoff.
- Az A kártya normál stílussal szemlélteti az oszlopokat és az oszlopkészleteket.
- A B kártya az első oszlopot kifutó beállítással szemlélteti. A tartalom átlépi a saját határait, és eléri a szülőjét.
Képméret
Size attribútum
- Engedélyezett értékek –
auto,stretch,small,mediumlarge -
auto: A képek szükség esetén le lesznek kicsinyítve, de nem lesznek felnagyítva a terület kitöltéséhez. -
stretch: A képet szükség szerint kicsinyítheti vagy nagyíthatja, hogy illeszkedjen. -
small,mediuméslarge: A kép fix szélességű, ahol a szélességet a gazdagép határozza meg.
-
autoésstretch
- Oszlopszélesség és képméret kombinációja
- A
stretchszélességű oszlopok általában lehetővé teszik, hogy a képek szabadon skálázhatók legyenekstretchmérettel. - A
autoszélességű oszlopok lehetővé teszik, hogy a kép pontos helyet foglaljon el függetlenül a méretétőlautoésstretch. - Az oszlopszélesség nagyobb elsőbbséget élvez a képméret meghatározásában ebben a elrendezésben.
Kép attribútum Width (in pixels)
- Ez biztosítja a kép kívánt képernyőszélességet.
-
sizetulajdonság felülírásra kerül, amikor értéket adnak meg
- Az
autoszélességű oszlop előnyt élvezstretch-vel szemben a képtartalom elrendezésekor.
Oszlopszélesség (súly és képpont) és képméret (automatikus és nyújtás) kombináció
- Megfelelő méretű
autoképek elegendő helyet foglalnak el a bővítéshez (vagy lekicsinyítéséhez) az oszlopkorlátokon belülweightéspixelszélesség esetén. - A
stretchméretű képek kibővülhetnek, hogy kitöltsék a fennmaradó területet az oszlopweightéspixelszélesség korlátain belül.
Fejlett elrendezés összefoglalása
- Az oszlopszélesség nagyobb elsőbbséget élvez a kép méretének meghatározásában, mint a kép mérete (automatikus, nyújtás, minimális szélesség stb.).
- A tartalom megfelelő megjelenítéséhez használt oszlopszélesség elsőbbsége -
px>weight>auto>stretch -
sizekép (automatikus, nyújtás) figyelmen kívül hagyásra kerül, hawidthésheightpx-ben van megadva. - A képméret
stretchattribútum csak akkor skálázja fel a képet, ha van még hely, és az automatikus oszlop nemauto. - A kép az oszlopban rendelkezésre álló térbeli méretarányt megtartó korlátig nyúlik. A magasság viszont szabadon bővül.
-
Spacingaz attribútumnak nincs hatása, ha ez az első vagy az egyetlen elem a testvére között.
Műveletek
- Ha a HostConfig
supportsInteractivityazfalse, a renderelő nem jeleníthet meg semmilyen műveletet. - A
actionstulajdonságot gombként kell megjeleníteni valamilyen műveletsávban, általában a kártya alján. - Ha egy gombot megérintenek, KÖTELEZŐEN engedélyeznie kell, hogy a gazdaalkalmazás kezelje az eseményt.
- Az eseménynek a művelettel együtt kell átadnia az összes társított tulajdonságot.
- Az eseménynek végig kell haladnia a
AdaptiveCardvégrehajtott eseményen
| Tevékenység | Magatartás |
|---|---|
| Action.OpenUrl | Külső URL-cím megnyitása megtekintésre |
| Action.ShowCard | A rendszer kéri, hogy egy alkártya jelenjen meg a felhasználó számára. |
| Művelet.Beküldés | Kérje meg, hogy az összes bemeneti elemet összegyűjtse egy objektumba, amelyet aztán a gazdaalkalmazás által meghatározott metódussal küld el Önnek. |
| Action.Execute | (Az 1.4-ben bevezetett) Kérje meg, hogy az összes bemeneti elemet összegyűjtse egy objektumba, amelyet aztán az "univerzális műveleti folyamaton" keresztül küld el Önnek. |
Action.OpenUrl
-
Action.OpenUrlURL-címet kell megnyitnia a natív platform mechanizmusával - Ha ez nem lehetséges, eseményt kell létrehoznia a gazdagépalkalmazásnak az URL-cím megnyitásának kezeléséhez. Ennek az eseménynek engedélyeznie kell , hogy a gazdaalkalmazás felülbírálja az alapértelmezett viselkedést. Például nyissák meg az URL-címet a saját alkalmazásukon belül.
Action.ShowCard
-
Action.ShowCardA hostConfig beállítástól függően valamilyen módon támogatni kell. Két mód van: beágyazott és előugró. A beágyazott kártyák automatikusan váltják a kártya láthatóságát. Előugró módban egy eseményt kell aktiválni a gazdaalkalmazásba, hogy valamilyen módon megjelenítse a kártyát.
Művelet.Beküldés
-
Action.Submitaz elem összegyűjti a bemeneti mezőket, egyesül az opcionális adatmezővel, és eseményt küld az ügyfélnek. - Az elem viselkedésében jelentős különbség van az ACL-megjelenítő 1.x és 2.x verziója között.
A Küldési művelet úgy működik, mint egy HTML-űrlap elküldése, azzal a különbséggel, hogy míg a HTML általában egy HTTP POST kérést indít el, az Adaptive Cards esetében a gazdagép alkalmazás határozza meg, mit jelent számukra a "küldés".
- Ha ennek KÖTELEZŐ eseményt kiváltania, a felhasználó koppint a meghívott műveletre.
- A
datatulajdonságnak szerepelnie kell a visszahívás terhelésében. - Ehhez
Action.Submita megjelenítőnek össze kell gyűjtenie a kártyán lévő összes bemenetet, és le kell kérnie az értékeit.
-
1.x Renderer- A bemenetek minden mezőből összegyűjthetők, függetlenül attól, hogy a hierarchiában hol található a bemeneti mező. -
2.x Renderer- A bemenetek a szülőtárolóban található mezőkből vagy azAction.Submitelem testvéreként lesznek összegyűjtve.
Action.Execute (Részletek később)
Az Action.Execute az 1.4-es verzióban lett bevezetve. Az SDK-khoz egy későbbi időpontban nyújtunk megvalósítási útmutatót. Ha kérdése van ezzel a témával kapcsolatban, forduljon.
selectAction
- Amennyiben a gazdagép konfiguráció
supportedInteractivityfalse, akkorselectActionnem szabad megjelenítenie mint érinthető elemet. -
Image,ColumnSetésColumnfelajánl egy tulajdonságotselectAction, amelyet a felhasználó meghívásakor végre kell hajtani, például az elemre koppintva.
Bemenetek
- Ha a
falseHostConfigsupportsInteractivityegy renderelő, nem jeleníthet meg semmilyen bemenetet. - A bemeneteknek a lehető legmagasabb hűséggel kell megjelennie. Egy felhasználónak például
Input.Dateideális esetben dátumválasztót ajánlana, de ha ez nem lehetséges a felhasználói felületen, akkor a renderelőnek vissza kell esnie egy szabványos szövegdoboz megjelenítéséhez. - A renderelőnek lehetőség szerint meg kell jelenítenie a
placeholderText - A bemeneti érték kötését megfelelően kell megszűkíteni
- Az 1.3-s verzió előtt a renderelőnek NEM kell implementálnia a bemenet érvényesítését. Az adaptív kártyák felhasználóinak a végén érvényesíteniük kell a kapott adatokat.
- A bemeneti címkék és az ellenőrzés az Adaptív Kártyák séma 1.3-ás verziójában lett bevezetve. A kapcsolódó címke, érvényesítési tippek és hibaüzenetek megjelenítéséhez különös figyelmet kell fordítani.
Stílus- és testreszabási és bővíthetőségi API-k
Minden SDK-nak bizonyos fokú rugalmasságot kell biztosítania a Gazdagépalkalmazások számára az általános stílus szabályozása és a séma megfelelőnek látszó kiterjesztése érdekében.
Gazdagép konfigurációja
- TEENDŐ: Mi legyen az alapértelmezett érték? Mindannyian megosszák? Be kell ágyaznunk egy közös hostConfig.json fájlt a bináris fájlokba?
HostConfig egy megosztott konfigurációs objektum, amely meghatározza, hogy az Adaptív Kártya renderelő hogyan hozza létre a felhasználói felületet.
Ez lehetővé teszi a platformfüggetlen tulajdonságok megosztását a különböző platformokon és eszközökön lévő renderelők között. Emellett lehetővé teszi az eszközök létrehozását is, amely képet ad arról, hogy a kártya milyen megjelenésű lenne egy adott környezetben.
- A renderelőknek közzé kell tenniük egy gazdagép konfigurációs paramétert a gazdaalkalmazások számukra.
- Minden elemet a megfelelő host konfigurációs beállításainak megfelelően MUST formázni.
Natív platformformázás
- Minden elemtípusnak natív platformstílust kell csatolnia a létrehozott felhasználói felületi elemhez. A HTML-ben például hozzáadtunk egy CSS-osztályt az elemtípusokhoz, az XAML-ben pedig egy adott stílust rendelünk hozzá.
Bővíthetőség
- A renderelőnek engedélyeznie kell, hogy a gazdagép-alkalmazások felülbírálhassák az alapértelmezett elemmegjelenítőket. Például saját logikájuk szerint cseréljék le a
TextBlockrenderelését. - A renderelőnek engedélyeznie kell, hogy a gazda alkalmazások egyéni elemtípusokat regisztráljanak. Például egy egyéni
Ratingelem támogatásának hozzáadása - A megjelenítőnek engedélyeznie kell , hogy a gazdagépalkalmazások eltávolítsák az alapértelmezett elem támogatását. Például távolítsa el
Action.Submit, ha nem szeretné, hogy támogatott legyen.
Események
- A megjelenítőnek eseményt kell aktiválnia, amikor egy elem láthatósága megváltozott, így a gazdaalkalmazás görgetheti a kártyát a pozícióba.