screens
Kaydettiğiniz rotalar üzerinden yanıttan açılacak uygulama ekranlarınız.
İşi tamamlayacağınız yer. screens, kendi uygulamanızdan bir ila dört ekran sunar: sipariş, teslimat ayarları, ödeme formu. Her kart, öğeyi kullanıcının bildiği şekilde adlandırır (“Sipariş #4821”) ve altında, kaydettiğiniz şekliyle ekranın kendi başlığı yer alır; böylece dokunmanın nereye gideceği, dokunulmadan önce kartın üzerinde bulunur.
Bir dokunuş, ekranı uygulamanızın kendi navigasyonu üzerinden açar ve asistan köşede küçük bir balona küçülür; balona dokunulduğunda yanıt tam olarak olduğu gibi geri gelir. İlk kart ayrıca mikrofonun yanında ışıklı olarak çizilir.
Ekran görüntüsü değildir; tarayıcınızda SDK'nın kendi boyut ve renkleriyle canlı olarak çizilir.
Flutter SDK ile 0.38.0 ve Web SDK ile 0.15.0 sürümünden itibaren yerel olarak render edilir. Bunu bildirmeyen bir derlemeye asla sunulmaz.
Yalnızca rotaları kaydeden bir uygulamaya (SDK'da registerRoute) ve yalnızca bir navigate çalıştıran bir derlemeye sunulur. Model rotaları, başlıklarını ve parametrelerini görür; onları açan kodu asla görmez.
Bir rota kaydetme
Flutter:
Rendel.registerRoute(
'order_detail',
title: 'Orders › Order',
description: 'One order: its items, delivery and returns.',
params: {'order_id': RendelRouteParam.string(required: true, fromActions: true)},
open: (p) => router.push('/orders/${p['order_id']}'),
);Web:
Rendel.registerRoute({
name: 'order_detail',
title: 'Orders › Order',
description: 'One order: its items, delivery and returns.',
params: { order_id: { type: 'string', required: true, fromActions: true } },
open: (p) => navigate('/orders/' + p.order_id),
});İsimler snake_case formatındadır ve 64 karaktere kadardır. Bir başlık 1–60 karakter, bir açıklama 300 karaktere kadardır ve bir rota en fazla 8 parametre alır; bir uygulama en fazla 50 rota kaydeder. fromActions: true olan bir parametre, bu sohbette aksiyonlarınızdan birinin döndürdüğü bir değer olmalıdır; böylece tahmin edilen bir id ekranı asla açmaz. Rotalar manifest içinde taşınır ve her iki çağrı da init öncesinde güvenlidir.
Ekranınız görüntülenirken Rendel bir balon içinde bekler. bubbleOffset, onu kendi alt çubuğunuzun üstünde tutar (Flutter RendelConfig.bubbleOffset, varsayılan 104; web için telefon genişliğindeki bir sayfada varsayılan 104, aksi halde 24). Tam imzalar: Flutter SDK reference, Web SDK.
Sunucunun kontrol ettikleri
Blok ayrılmadan önce, içindeki her navigate rotalarınıza karşı kontrol edilir: rotanın kaydettiğiniz bir rota olması, parametrelerin bildirdiği parametreler olması, tiplerinin uyması ve zorunlu olanların bulunması gerekir. fromActions olarak işaretlediğiniz bir parametrenin, bu sohbette aksiyonlarınızdan birinin döndürdüğü bir alana eşit olması gerekir; böylece modelin uydurduğu veya bilgi bankasında okuduğu bir sipariş id'si, bir tutar veya bir IBAN ekranı açmaz. Başarısız olan bir blok, kendi fallback_text değeri olarak gösterilir.
Props
Her blok ayrıca type ve 1 ila 300 karakterlik zorunlu bir fallback_text taşır.
| Prop | Tür | Zorunlu | Kısıtlamalar |
|---|---|---|---|
items | array | Evet | 1 ila 4 öğe. |
items[].title | string | Evet | 1 ila 80 karakter. |
items[].icon | string | Hayır | En fazla 40 karakter. |
items[].action | action | Evet | { kind: "navigate", route }. Bkz. Actions. Kaydettiğiniz bir rotaya navigate. params: en fazla 8; değerler, rotanın bildirdiği şekilde en fazla 200 karakterlik dizeler, sayılar veya boole değerleridir. |
Ağ üzerinde
{
"id": "blk_52",
"type": "screens",
"fallback_text": "Open order 4821 in the app.",
"props": {
"items": [
{
"title": "Order #4821",
"icon": "package",
"action": { "kind": "navigate", "route": "order_detail", "params": { "order_id": "4821" } }
}
]
}
}Erişilebilirlik
Her kart kendi başlığı ve ekranın başlığı ile duyurulur. Balon, “Asistana geri dön” olarak etiketlenmiş bir butondur.