Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Aşağıdaki belirtim, herhangi bir yerel kullanıcı arabirimi platformunda Uyarlamalı Kart işleyicisinin nasıl uygulandığını açıklar.
Önemli
Bu içerik devam eden bir çalışmadır ve bazı ayrıntılar eksik olabilir. Sorularınız veya geri bildirimleriniz varsa lütfen bize bildirin .
JSON Ayrıştırma
Hata koşulları
- Ayrıştırıcının geçerli JSON içeriği olup olmadığını denetlemesi GEREKIR
- Ayrıştırıcı şemaya göre doğrulamaLIDIR (gerekli özellikler vb.)
- Yukarıdaki hatalar konak uygulamasına bildirilmelidir (özel durum veya eşdeğer)
Bilinmeyen türler
- Bilinmeyen "türler" ile karşılaşılırsa sonuçtan ÇıKARILMASI GEREKİr
- Yükte yapılan değişiklikler (yukarıdaki gibi) konak uygulamasına uyarı olarak bildirilmelidir
Bilinmeyen özellikler
- Ayrıştırıcı, öğelere ekstra özellikler eklemelidir
Dikkat edilmesi gereken ek noktalar
- özellik
speakSSML işaretlemesi içerebilir ve konak uygulamaya belirtildiği gibi döndürülmelidir
Ana Makine Yapılandırmasını Ayrıştırma
- YAPILACAKLAR
Sürüm oluşturma
- bir işleyici şemanın belirli bir sürümünü uygulamalidir .
- Oluşturucu,
AdaptiveCardözelliğineversiongeçerli şema sürümünü temel alan bir varsayılan değer vermelidir - Bir işleyici, bir
AdaptiveCardiçinde desteklenen sürümden daha yüksek birversionözelliği ile karşılaşırsa, bunun yerinefallbackText'ü döndürmelidir.
Renderlama
Bir AdaptiveCard, body ve actions'den oluşur.
body, bir işleyicinin sırayla numaralandıracağı ve işleyeceği CardElement koleksiyonudur.
- Her bir öğe, üst öğesinin genişliğine kadar uzanmalıdır (HTML'deki gibi düşünün
display: block). - bir işleyici karşılaştığı bilinmeyen öğe türlerini yoksaymaLI ve yükün geri kalanını işlemeye devam etmelidir.
Text, TextBlock ve RichTextBlock
- TextBlock,
wrapözelliğitrueolmadığı sürece, tek bir satırda bulunmalı. - Metin bloğu, fazlalık metni üç nokta (...) ile kırpmalıdır
Markdown
- Uyarlamalı Kartlar, Markdown'ın bir alt kümesini destekler ve
TextBlockiçinde desteklenmelidir. - RichTextBlock Markdown'ı DESTEKLEMEZ ve kullanıma sunulan özellikler kullanılarak stillendirilmelidir.
- Tam markdown gereksinimlerini görün
Biçimlendirme işlevleri
-
TextBlockher işleyicide desteklenmesi GEREKENTARİh/SAAT biçimlendirme işlevlerine izin verir. - TÜM HATALAR , ham dizeyi kartta görüntülemeLIDIR. Dostane bir mesaj denenmedi. (Amaç, geliştiricinin bir sorun olduğunu hemen fark etmelerini sağlamaktır)
Resimler
- Oluşturucu, konak uygulamalarının tüm HTTP görüntülerinin indirildiğini ve kartın "tamamen işlendiğini" bilmelerine izin vermelidir
- BIR işleyici HTTP görüntülerini indirirken Konak Yapılandırma
maxImageSizeparametresini incelemeLIDIR - bir çizici ZORUNDADIR
.pngve.jpegdesteklemelidir - Bir işleyici görüntüleri desteklemeLIDIR
.gif
Gelişmiş Düzen Davranışı
İşleyici, bu belgede belirtilen özniteliklere göre kart öğelerini işlerken aşağıdaki davranışlara dikkat etmelidir .
İşleyici, kart öğelerinin ve alt öğelerinin kenar boşluğu, doldurma, yükseklik ve genişlik gibi çeşitli faktörleri dikkate alarak Kısıtlamaları yönetmelidir.
Genişlik
- İzin verilen değerler -
auto,stretchvepixelsaçısından sabit değerlerweight -
autogenişliğin genişletilmesi için yeterli alan sağlar (en az genişletmeyi destekler) -
stretchkalan genişliği kaplar (maksimum genişletmeyi destekler)
Aşağıdaki senaryolarda kısıtlamaların sütunlar için farklı genişlik birleşimleriyle nasıl etkilendiği açıklanmaktadır
auto ile stretch karşılaştırması
-
autovestretchgenişliğinde sütunlar.
- Genişliğe sahip
autoilk sütun içeriği görüntülemek için yeterli alan alır ve genişlikli ikinci sütunstretchtüm alanı kaplar.
- Yalnızca
stretchgenişliği olan sütunlar
- Yalnızca esnetme genişliğine sahip sütunlar, eşit olarak bölündikten sonra kalan boşlukları kaplar.
-
auto,stretchveauto
birinci ve üçüncü sütun genişliği, önce öğeleri yeterince barındıracak şekilde ayarlanır ve esnetilmiş genişliğe sahip ikinci sütun kalan alanı kaplar.
-
autogenişlik sütunları ile öğelerin gösterim sırası
-
autoiçeren sütunlar, içeriğin işlenmesi için geniş alan sağlayacak şekilde kendilerini konumlandırır. - Görüntü görünümleri söz konusu olduğunda, resimler kalan genişliğe uyacak şekilde küçültülecektir.
-
Not: Görüntüler yalnızca
stretchveautogörüntü boyutu için küçültülür, ancak piksel cinsinden sabit genişlik ve yükseklik için küçültülmez.
weights ile pixels karşılaştırması
-
weightvepixelgenişliği kombinasyonuna sahip sütunlar
- Yukarıdaki kart, aşağıdaki genişlik yapılandırmasına sahip üç sütuna sahiptir :
-
Column1: Weight 50,Column2: 100px,Column3: Weight 50 - Sütun 2'nin genişliği,
pixel valuetarafından belirlenir. - Sütun 1 ve 3'ün genişliği
weightsve hesaplananweight ratioöğesine göre ayarlanır.
-
weight,pixel widthveautoözniteliklerine sahip sütunlar
- Yukarıdaki kart aşağıdaki genişlik yapılandırmasına sahip dört sütuna sahiptir :
-
Column1: Weight 50,Column2: 100px,Column3: Weight 50veColumn4: auto -
Not: Görüntü görünümü, kalan alana uyacak şekilde
autogenişlik sütununu küçültür.
width özniteliğine sahip öğeleri görüntülemenin öncelik sırası
px > weight > auto > stretch
Yükseklik
İzin verilen değerler - auto ve stretch
Aşağıdaki senaryolarda kısıtlamaların kart öğeleri için farklı yükseklik bileşimlerinden nasıl etkilendiği açıklanmaktadır
- Kart sabit yükseklikte olmadığında öğeler serbestçe dikey olarak genişletilir
- Her iki sütun da
autovestretchdeğerlerinden bağımsız olarak yeterince dikey genişleyebilir. - Bu,
wrapmetin bloğunun özelliğinin devre dışı bırakıldığı durumu ifade eder.
- Aşağıdaki kartta
wrapmetin bloğu için özelliği etkinleştirilmiştir.
Aralık ve Ayırıcı
-
spacingHer öğedeki özelliği CURRENT öğesi ile ÖNCESİ arasındaki boşluk miktarını etkiler. - BoşlukLAR YALNIZCA önünde bir öğe olduğunda uygulanmalıdır. (Örneğin, bir dizideki ilk öğeye uygulanmaz)
- İşleyici, geçerli öğeye uygulanan sabit listesi değeri için aralıktan
hostConfigkullanılacak alan miktarını aramalıdır. - öğesinin
separatordeğeritruevarsa, geçerli öğe ile ondan önceki öğe arasında görünür bir çizgi çizilmelidir . -
Ayrım çizgisi mutlaka
container.style.default.foregroundColorkullanılarak çizilmelidir. - Öğenin dizideki ilk öğe olmaması durumunda bir ayırıcı YALNıZCA çizilmelidir.
-
Aralık - İzin verilen değerler
none,small,default,medium, ,extra largelargevepadding
- Aralık özniteliği, bu öğeyle önceki öğe arasına boşluk ekler.
- Aralık özniteliği, görünüm kapsayıcısında ilk öğe olduğunda herhangi bir etkiye sahip değildir.
- Okla işaretlenen öğeler, eşdüzey öğeleri arasındaki ilk öğelerdir, bu nedenle aralığın hiçbir etkisi yoktur.
- Ayırıcı - Olası değerler (açık/kapalı anahtar)
- Öğenin en üstüne ayrım çizgisi çizer.
- Aralık ve Seperator bileşimi
- Aralık ve seperatör bileşiminin kısıtlamaları aşağıda gösterilmiştir.
- Toplam aralık uzaklığı, sağlanan değerlere göre korunur.
- Ayırıcı, aralıklı mesafenin yarı yolunda eklenir.
[Not. Ayırıcının aralık alanına yerleştirildiği uzaklığı onaylamanız gerekir. Ortadaki gibi görünüyor]
Kapsayıcı Stilleri
- Sütunlar ve sütun kümesi gibi kapsayıcılar için stil ipuçları sağlar
- İzin verilen değerler
none,default,emphasis,good, ,warningattentionveaccent - Bu önceden tanımlanmış stil seçenekleri, kapsayıcı içindeki öğeler ve arka plan rengi için doldurma sağlar
- A Kartı, stil seçeneği olmayan sütunları ve sütun kümesini gösterir
- B Kartı, Dikkat stiline sahip sütun kümesini gösterir. Sütun kümesi kapsayıcısının içindeki doldurmaya ve arka plan rengindeki değişikliğe dikkat edin.
- C kartı yalnızca stil içeren sütunları gösterir. Öncekine benzer şekilde, sütun doldurma ve arka plan değişikliği içerir.
- D kartı, hem sütunları hem de sütun kümesini stil seçenekleriyle gösterir.
[Not. Doldurma miktarının nasıl belirlendiğini denetlemem gerekiyor. Konak tarafından belirlenir mi? ]
Kanamak
- Bu özellik, sütunlar ve sütun kümesi gibi kapsayıcının üst öğesine nüfuz etmesini sağlar.
- Olası değerler
onveoff.
- Kart A, normal stil ile sütunları ve sütun kümesini gösterir.
- B kartı kenar taşması seçeneğine sahip ilk sütunu gösterir. İçerik sınırlarını aşarak üst öğeye geçer.
Görüntü Boyutu
Size özniteliği
- İzin verilen değerler -
auto,stretch,small,medium,large -
auto: Gerekirse resimlerin ölçeği sığacak şekilde azaltılır, ancak alanı dolduracak şekilde artırılmaz. -
stretch: Gerektiğinde sığacak şekilde hem aşağı hem de yukarı ölçekleyen görüntü. -
small,mediumvelarge: Görüntü, genişliğin konak tarafından belirlendiği sabit bir genişlikte gösterilir.
-
autoilestretchkarşılaştırması
- Sütun genişliği ve Görüntü Boyutu bileşimi
- Genel olarak, genişliğinde
stretchsütunlar, görüntülerinstretchboyutuyla serbestçe büyüyebilmesini sağlar. -
autogenişliğindeki sütunlar, görüntünün boyutu ne olursa olsun, görüntünün yer kaplayacağı alanı tam olarak belirler. - Sütun genişliği, bu düzenlemedeki görüntü boyutunun belirlenmesinde daha önceliklidir.
Görüntü Width (in pixels) özniteliği
- Bu, görüntünün istenen ekran genişliğini sağlar.
-
sizeözelliği, bir değer belirtildiğinde geçersiz kılınır
-
autogenişliğine sahip sütun, bu düzenlemede görüntü içeriği için yer sağlamak açısındanstretch'den daha öncelikli olacaktır.
Sütun Genişliği (ağırlık ve piksel) ve Görüntü boyutu (otomatik ve esnetme) Bileşimi
-
autoboyutuna sahip görüntüler,weightvepixelgenişliği sütun kısıtlamaları içinde genişleme (veya küçültme) için yeterli alan kaplar. - Boyutu olan
stretchgörüntüler, sütunweightvepixelgenişlik kısıtlamaları içinde kalan alanı dolduracak şekilde genişletilebilir.
Gelişmiş Düzen Özeti
- Sütun genişliği, görüntünün boyutunun belirlenmesinde resim boyutundan (otomatik, esnetme, en az genişlik vb.) daha önceliklidir.
- İçeriğini yeterince görüntülemek için alınan sütun genişliğinin önceliği -
px>weight>auto>stretch -
sizegörüntüsü (otomatik, esnetme),widthveheightpiksel cinsinden sağlandığında yoksayılır. - Görüntü
stretchboyutu özniteliği, yalnızca kalan alan olduğunda ve sütun otomatikautoayarlanmamışsa görüntüyü büyütür. - Bir görüntü, sütundaki kullanılabilir alan içinde en boy oranını koruduğu sınıra kadar uzanır. Buna karşılık, yükseklik serbestçe genişler.
-
Spacingözniteliği, eşdüzey öğe arasındaki ilk veya tek öğe olduğunda hiçbir etkisi olmaz.
Eylemler
- HostConfig
supportsInteractivityisefalse, çizici herhangi bir eylemi İŞLEMEMELİDİR. -
actionsözelliği, kartın alt kısmında yer alan bir eylem çubuğunda genellikle düğme olarak gösterilmelidir. - Bir düğmeye dokunulduğunda, ana uygulamanın olayı işlemesi kesinlikle sağlanmalıdır.
- Olay, eylemle ilişkili tüm özellikleri geçirmeLI
- Olayın yürütülen
AdaptiveCardile birlikte geçmesi GEREKİR.
| Eylem | Davranış |
|---|---|
| Action.OpenUrl | Görüntülemek için dış URL'yi açma |
| Action.ShowCard | Kullanıcıya bir alt kart gösterilmesini istemektedir. |
| İşlem.Gönder | Giriş öğelerinin tamamının bir nesnede toplanarak size, konak uygulama tarafından tanımlanan bir yöntemle gönderilmesini isteyin. |
| Action.Execute | (v1.4'te kullanıma sunulmuştur) Daha sonra "evrensel eylem işlem hattı" aracılığıyla size gönderilen bir nesnede toplanacak tüm giriş öğelerini isteyin |
Action.OpenUrl
-
Action.OpenUrlYerel platform mekanizmasını kullanarak URL'yi açmalı - Bu mümkün değilse, URL'nin açılmasını sağlamak için konak uygulamasına bir olay tetiklemek zorundadır. Bu olay, varsayılan davranışın konak uygulama tarafından geçersiz kılınmasına izin vermelidir. Örneğin, URL'yi kendi uygulamaları içinde açmalarına izin verin.
Action.ShowCard
-
Action.ShowCardhostConfig ayarına bağlı olarak bir şekilde desteklenmeli. İki mod vardır: satır içi ve açılır pencere. Satır içi kartlar, kart görünürlüğünü otomatik olarak değiştirmeLIDIR . Açılan modda, kartın bir şekilde gösterilmesi için konak uygulamasına bir olay tetiklenmeli .
Aksiyon.Gönder
-
Action.Submitöğesi giriş alanlarını toplar, isteğe bağlı veri alanıyla birleştirilir ve istemciye bir olay gönderir. - ACL işleyicisinin 1.x ve 2.x sürümü arasında öğe davranışında önemli bir fark vardır.
Adaptif Kartlar'daki "Gönderme Eylemi", bir HTML formu gönderimi gibi davranır; ancak HTML genellikle bir HTTP gönderisini tetiklerken, "gönderme" işleminin ne anlama geldiğini belirlemek konak uygulamasına bırakılır.
- Bu bir olay tetiklediğinde kullanıcı çağrılan eyleme dokunur.
-
dataözelliği geri çağırma yüküne dahil edilmelidir. - için
Action.Submit, işleyici kart üzerindeki tüm girişleri toplamalı ve değerlerini almalıdır .
-
1.x Renderer- Girişler, hiyerarşideki giriş alanının bulunduğu konumdan bağımsız olarak tüm alanlardan toplanır. -
2.x Renderer- Girişler, ana kapsayıcıda bulunan alanlardan veyaAction.Submitöğesinin yanındaki kardeş alanlardan toplanır.
Action.Execute (Ayrıntılar daha sonra sunulacak)
Action.Execute, sürüm 1.4'te kullanıma sunulmuştur. SDK'lar için daha sonraki bir tarihte uygulama kılavuzu sağlayacağız. Bu konu hakkında sorularınız varsa lütfen ulaşın.
selectAction
- Sunucu Yapılandırması
supportedInteractivitybirfalseselectActiondokunmatik hedef olarak işLENMEMELİDİR. -
Image,ColumnSetveColumnkullanıcı tarafından çağrıldığında yürütülmesi gereken birselectActionözellik (örneğin, öğesine dokunarak) sunar.
Girişler
- HostConfig
supportsInteractivitybir işleyiciysefalsehiçbir girişi İşlememesi GEREKİR. - Girişler mümkün olan en yüksek doğrulukta işlenmelidir. Örneğin, bir
Input.Dateideal olarak kullanıcıya bir tarih seçici sunmalıdır, ancak bu kullanıcı arabirimi yığınınızda mümkün değilse, işleyici standart bir metin kutusunu işlemeye geri dönmek zorundadır. - Bir çizici GÖSTERMELİ
placeholderTextmümkünse - Giriş değeri bağlaması düzgün bir şekilde kaçış noktası oluşturulmalıdır
- v1.3'ten önce, bir işlemcinin girdinin doğrulamasını yapması gerekmez. Uyarlamalı Kart kullanıcılarının kendi uçlarında alınan verileri doğrulamayı planlamaları gerekir.
- Giriş Etiketleri ve Doğrulama , Uyarlamalı Kartlar Şemasının v1.3'lerinde kullanıma sunulmuştur. İlişkili etiketin, doğrulama ipuçlarının ve hata iletilerinin işlenmesinde dikkatli olunmalıdır.
Stil Oluşturma, Özelleştirme ve Genişletilebilirlik API'leri
Her SDK, genel stili denetlemek ve şemayı uygun gördükleri şekilde genişletmek için Uygulamaları Barındırmak için belirli bir esneklik düzeyi sağlamalıdır.
Konak Yapılandırması
- TODO: Varsayılanlar ne olmalıdır? Herkes paylaşsın mı? İkili dosyalara ortak bir hostConfig.json dosyası eklemeli miyiz?
HostConfig , Uyarlamalı Kart oluşturucus un kullanıcı arabirimini nasıl oluşturduğunu belirten paylaşılan bir yapılandırma nesnesidir.
Bu, platformdan bağımsız olan özelliklerin farklı platformlarda ve cihazlarda işleyiciler arasında paylaşılmasını sağlar. Ayrıca, kartın belirli bir ortam için sahip olacağı görünüm ve his hakkında fikir veren araçlar oluşturulmasına da olanak tanır.
- Renderer'lar konak uygulamaları için Konak Yapılandırması parametresini kullanıma sunmalı
- Tüm öğeler, ilgili Konak Yapılandırması ayarlarına göre stillendirilmelidir
Yerel platform stillendirmesi
- Her öğe türü, oluşturulan kullanıcı arabirimi öğesiyle yerel bir platform stili eklemeLIDIR . Örneğin, HTML'de öğe türlerine bir CSS sınıfı ekledik ve XAML'de belirli bir Stil atıyoruz.
Genişletilebilirlik
- Render motoru, ana bilgisayar uygulamalarının varsayılan öğe işleyicilerini geçersiz kılmasına izin vermelidir. Örneğin, işlemeyi kendi mantığıyla değiştirin
TextBlock. - Bir render MUTLAKA konak uygulamalarının özel öğe türlerini kaydetmesine izin vermelidir. Örneğin, özel
Ratingbir öğe için destek ekleme - oluşturucu, konak uygulamalarının varsayılan öğe desteğini kaldırmasına izin vermelidir . Örneğin, desteklenmesini istemiyorsanız
Action.Submitöğesini kaldırın.
Etkinlikler
- Bir öğenin görünürlüğü değiştiğinde gösterici bir olayı tetiklemelidir ve konak uygulamanın kartı konumuna kaydırmasına izin vermelidir.