Was ist Launch?
In diesem Beitrag zeige ich dir, wie du die Power Fx Launch Funktion nutzt, um aus einer Canvas-App heraus Webseiten oder andere Power Apps zu starten. Die Funktion Launch() wird in Verhaltensformeln eingesetzt, benötigt eine Adresse (URL oder App-URI) und erlaubt die Übergabe optionaler Parameter – etwa für Navigation oder Datentransfer. Zusätzlich kannst du mit dem optionalen LaunchTarget steuern, ob die Seite im gleichen oder in einem neuen Browser-Tab geöffnet wird. Innerhalb der geöffneten App lassen sich die übergebenen Werte dann mit der Param()-Funktion auslesen – ideal für Deep Linking und gezielte Navigation.
Launch(
!Adresse, //String
!Parameter, //Argumnetliste || Objekt
Target // Enum || String
) -> Behavior
Parameter-Argument
Die Launch-Funktion kann Parameter an eine Webseite oder eine Canvas-App übergeben. Dies kann auf zwei Arten erfolgen: als Argumentliste von Name-Wert-Paaren oder als Feldwerte. Beim Starten einer App auf einem mobilen Gerät werden die Parameter nicht aktualisiert, wenn die App bereits läuft. Um die Parameter zu aktualisieren, muss die App neu geladen werden.
LaunchTarget-Argument
Verwenden Sie das LaunchTarget-Argument, um das Zielbrowserfenster festzulegen, in dem die Webseite oder App geöffnet werden soll. Sie können einen der folgenden LaunchTarget-Werte nutzen oder einen benutzerdefinierten Fensternamen angeben:
- New: Öffnet die Webseite oder App in einem neuen Fenster oder einer neuen Registerkarte.
- Replace: Ersetzt das aktuelle Fenster oder die aktuelle Registerkarte mit der Webseite oder App.
- Name: Verwenden Sie eine eigene Textzeichenfolge, um das Fenster oder die Registerkarte zu benennen. Wenn ein Fenster oder eine Registerkarte mit diesem Namen bereits existiert, wird deren Inhalt ersetzt. Ansonsten wird ein neues Fenster oder eine neue Registerkarte erstellt. Der Name darf nicht mit einem Unterstrich beginnen.
Anwendungsgmöglichkeiten
Canvas App öffnen
Canvas-Apps können über einen Weblink oder eine App-URI gestartet werden. Die App-URI besteht aus der App-ID mit dem Präfix /providers/Microsoft.PowerApps/apps/
. Diese Informationen finden Sie in Power Apps unter den Menüpunkten „Apps“ und „Details“. Ein Weblink kann auf jeder Webseite verwendet werden, um die Canvas-App zu starten. Bei der Verwendung der App-ID mit der Launch-Funktion muss diese mit dem genannten Präfix versehen werden. Beachten Sie, dass Abfragezeichenfolgen beim Starten einer Canvas-App nicht funktionieren.
Launch(
"/providers/Microsoft.PowerApps/apps/19ec3e16-95fa-454f-83e3-f51e947245d1",
Blank(),
LaunchTarget.New
)
Website öffnen
Die Adresse und die Parameter werden vor der Übergabe URL-codiert, um bestimmte Zeichen zu ersetzen. Beim Starten einer Webseite können Abfragezeichenfolgen am Ende der URL hinzugefügt werden, und zusätzliche Parameter werden angehängt.
//Argumentliste
Launch(
"https://google.com",
"q",
"LowCode Investigator",
"num",
50
);
//Feldwerte
Launch(
"https://google.com",
{
q: "LowCode Investigator",
num: 50
},
LaunchTarget.New
);
//Abfragezeichenfolge
Launch(
"https://google.com?q=LowCode Investigator",
{num: 50},
LaunchTarget.Replace
)
Teams Chat öffnen
Auch immer ganz, wenn man direkt den Chat zu einem Kontakt öffnen kann, das erreicht ihr mit folgendem Snippet.
Launch(
"msteams://teams.microsoft.com/l/chat/0/0?users=" & User().Email
)
Geschäftstelefon aus Office365User
Outlook bietet die Möglichkeit mehrere Geschäftstelefonnummern für einen Kontakt zu hinterlegen. Daher müssen wir in diesem Fall berücksichtigen das wir dass erste Element auswählen. Mit einer ComboBox könnt ihr natürlich auch eine Auswahl treffen.
Launch(
"tel://" & Substitute(
First(
Office365Users.UserProfileV2(
User().Email).businessPhones.Value).Value,
"",
""
)
)
Mobiltelefon aus Office365User
Beim Mobiltelefon kann man im Outlook lediglich eine Mobilfunknummer hinterlegen, daher müssen wir in diesem Fall auf keine Index verweisen.
Launch(
"tel://" & Substitute(
Office365Users.UserProfileV2(
User().Email
).mobilePhone,
" ",
""
)
)
Email im E-Mail Client öffnen
Auch immer ganz nett, wenn man direkt den Chat zu einem Kontakt öffnen kann, das erreicht ihr mit folgender Funktion.
Launch(
"mailto:" & User().Email &
"?subject=Hello World&body=" &
"Hallo: %0D%0A %0D%0A" &
"UserName: " & User().FullName
)
Outlook Termin im Web öffnen
Um direkt einen Termin in Outlook Web zu öffnen, kannst du diese Funktion verwenden.
Launch(
"https://outlook.office.com/calendar/0/deeplink/compose?subject=" & varSubject &
"&body=" & varBody &
"&startdt=" & Text(
Now(),
DateTimeFormat.UTC
) &
"&enddt=" & Text(
DateAdd(
Now(),
1,
TimeUnit.Hours
),
DateTimeFormat.UTC
) &
"&location=" & varLocation &
"&path=%2Fcalendar%2Faction%2Fcompose&rru=addevent"
)
Fazit
Die Launch-Funktion in Power Apps bietet eine mächtige und flexible Möglichkeit, Webseiten und Canvas-Apps direkt aus einer App heraus zu öffnen und dabei spezifische Parameter zu übergeben. Die zahlreichen Anwendungsmöglichkeiten machen diese Funktion zu einem wertvollen Werkzeug in der Entwicklung von Apps, die auf verschiedenen Plattformen und in unterschiedlichen Kontexten eingesetzt werden können.
Ob es darum geht, eine Webseite mit spezifischen Abfrageparametern zu öffnen, eine Canvas-App auf einem mobilen Gerät zu starten, oder sogar direkte Interaktionen wie das Öffnen eines Teams-Chats oder das Initiieren eines Telefonanrufs zu ermöglichen – die Launch-Funktion deckt all diese Anwendungsfälle ab.
Durch die richtige Nutzung von Argumenten wie LaunchTarget und das URL-Codieren von Parametern lässt sich das Verhalten der geöffneten Fenster präzise steuern. Die Beispiele in diesem Artikel zeigen deutlich, wie vielseitig und anpassbar diese Funktion ist, und geben Entwicklern das nötige Rüstzeug, um ihre Power Apps noch benutzerfreundlicher und funktionaler zu gestalten.
Mit diesen Kenntnissen können Sie Ihre Apps effizienter gestalten und die Benutzererfahrung erheblich verbessern, indem Sie nahtlose Übergänge zwischen verschiedenen Anwendungen und Diensten ermöglichen. Die Möglichkeiten sind nahezu unbegrenzt – nutzen Sie die Launch-Funktion, um Ihre Power Apps auf das nächste Level zu heben.