Een Studio-app zelfstandig uitvoeren
Doel
De app die je hebt getekend openen als een app op zichzelf — vanuit de lijst van de shell, met niets eromheen behalve de bovenste balk van het platform.
Waarom dit bestaat
Een Studio-app is geen pagina binnen iets anders. Ze bevat haar eigen schermen en gaat daartussen heen en weer, dus ze heeft geen navigatiebalk, geen siteoverzicht en geen modelgestuurde app nodig om een geheel te zijn. Dat maakt haar later bruikbaar als voorkant van een portal, en daarom staat ze in de applijst naast je andere apps in plaats van alleen binnen een van die apps.
Beide manieren om haar te bereiken zijn echt, en je kiest per app:
| Bereikt | Ziet eruit als | Gebruik het wanneer |
|---|---|---|
| Zelfstandig, vanuit de applijst | je tekening, volle breedte, geen navigatiebalk | de app bestaat uit de getekende schermen |
| Binnen de navigatie van een modelgestuurde app | een balk met tabellen naast je tekening | de tekening is een landingspagina boven records — zie Een Studio-app openen vanuit een modelgestuurde app |
Vereisten
- Een Studio-app die je hebt getekend en opgeslagen — zie Een Studio-app tekenen.
- De omgeving waarin ze is gebouwd, of een omgeving waarin haar oplossing is geïmporteerd.
Stappen
- Open de Platformshell en controleer of de omgevingskiezer op de omgeving staat waarin je app zit.
- Zoek je app in de applijst. Onder het pictogram op de tegel staat Studio-app.
- Druk erop. De app opent op haar startscherm — het scherm dat in de designer bij Opent op staat.
- Beweeg je erdoorheen met de knoppen die je hebt getekend. Elke
navigate("…")brengt je naar dat scherm.
De adresbalk hoort erbij
Elk scherm heeft een eigen adres: /apps/<your app>/<screen name>. Dat is geen versiering —
- de knop Terug van de browser brengt je naar het vorige scherm in plaats van de app te verlaten;
- opnieuw laden brengt je terug op het scherm waar je was;
- een link die je kopieert, opent daar voor wie je hem ook stuurt.
De schermnaam in het adres is de naam op het frame, dus een scherm dat Order details heet, staat er
als Order%20details — de manier waarop de browser een spatie schrijft.
Wat een link niet kan meedragen, is een waarde die wordt doorgegeven met
navigate("Details", { id }). Die reizen op het moment zelf, tussen twee schermen; wie aankomt via
Terug, via opnieuw laden of via een geplakte link, opent het scherm met niets in screen.params. Als
een scherm bereikbaar moet zijn via wat het toont, is dat een portalpagina met een ontworpen adres,
geen overdracht.
Wie haar kan openen
Een app openen is een machtiging, gecontroleerd wanneer het document wordt opgehaald — dezelfde toestemming, of de app nu zelfstandig wordt geopend of vanuit een modelgestuurde app. Een gebruiker zonder toestemming krijgt te horen dat hij haar niet mag openen, in plaats van een leeg scherm te zien.
Let op: een toestemming geldt per app, niet per scherm. Twee schermen die door verschillende mensen gezien moeten worden, zijn twee apps, of één app die verbergt wat iemand niet mag zien — en verbergen in een tekening is een beleefdheid, geen beveiliging: wat een record echt beschermt, is de machtiging op het record.
Een app staat alleen in de app-lijst van wie haar mag openen. Om een app aan anderen te geven, selecteert u haar onder Studio-apps en kiest u Delen. Het is hetzelfde paneel als voor een modelgestuurde app: vink de rollen aan waarvoor de app bedoeld is, en Mensen die hem krijgen noemt wie dat bereikt. Zie Een app geven aan de mensen die haar gebruiken.
Het venster vullen: de platformbalk verbergen
Een app kan de shell vragen niets van haar eigen omlijsting te tonen — geen bovenste balk, geen omgevingswisselaar, geen taal- of themaknoppen en geen gebruikersmenu. Vink De platformbalk verbergen aan op de app (Studio-apps → je app → Bewerken). Het staat uit tenzij je het aanzet.
Teken die dingen eerst in de app. Wat het vinkje weghaalt, is de enige uitgang uit het product, dus een getekende app die de balk vervangt, moet dragen wat de balk droeg:
| Wat de balk van het platform heeft | Wat een scherm kan tekenen |
|---|---|
| Wie is aangemeld, en de foto | user.name, user.email, en een afbeelding waarvan de koppeling Afbeelding user.photo is |
| Licht en donker | setTheme("dark") / setTheme("light"), en ui.theme om te lezen welke het nu is |
| Afmelden | signOut() |
| De omgevingskiezer | niets — en dat is de reden om de balk aan te laten voor alles wat een maker gebruikt |
Het voorbeeld Support desk doet dit allemaal; open het en kijk naar de bovenste balk.
Gebruik het voor een toepassing die niet duidelijk bij een suite hoort — een kiosk, een scherm aan de muur, een hulpmiddel met één doel — of waar je eigen bovenste balk direct onder die van het platform staat en de twee lezen als hetzelfde, twee keer.
Het naar een andere omgeving verplaatsen
Een app reist mee in haar oplossing, net als elk ander onderdeel. Exporteer haar uit de omgeving waarin je haar hebt gebouwd en importeer haar in de volgende; de app verschijnt zonder verdere stap in de applijst van die omgeving. Links blijven na de verhuizing werken, omdat een app wordt geadresseerd via haar logische naam en niet via een id die verandert.
Problemen oplossen
- De app staat niet in de lijst. — je zit in de verkeerde omgeving, of haar oplossing is hier niet geïmporteerd. Controleer eerst de omgevingskiezer.
- Ze opent op het verkeerde scherm. — Opent op in de designer noemt het startscherm. Open de app in de designer, controleer het en sla op.
- Een knop zegt dat deze app geen scherm met die naam heeft. — het frame is hernoemd nadat de handler was geschreven. De melding noemt wat werd gevraagd; geef het frame zijn oude naam terug, of pas de handler aan.
- De app zegt dat ze niet kon worden geopend. — je rol heeft er geen toestemming voor. Een app openen is een machtiging zoals elke andere; vraag het aan degene die je beveiligingsrollen beheert.
- Terug verlaat de app in plaats van naar het vorige scherm te gaan. — je kwam rechtstreeks op dat scherm aan (een geplakte link, opnieuw laden), dus er staat niets vóór in de geschiedenis van deze app.
- Er is geen uitgang uit de app. — De platformbalk verbergen staat aan en de app tekent zelf geen
Afmelden. Zet het uit, of voeg een knop toe waarvan de handler
signOut()aanroept. - De foto in mijn bovenste balk is leeg. — de persoon heeft geen foto in het profiel, wat het
gewone geval is. Koppel Getoond van de afbeelding aan
user.photo != ""en teken er een gekleurde cirkel achter, zoals het voorbeeld doet.