Launch 和 Param 函式
適用於: 畫布應用
啟動網頁或畫布應用程式並提供啟動參數的存取權。
啟動
啟動網頁或畫布應用程式。 此函數支援:
- Address (必需),畫布應用網頁的 URL。
- Parameters (可選),要傳遞給網頁或畫布應用的命名值。 在畫布應用程式中,可以使用 Param 函式讀取參數。
- Target (選擇),用於啟動網頁或畫布應用程式的瀏覽器選項卡。
Launch 只能在行為公式 中使用。
注意
如果使用啟動公式打開 Power Apps 並且終端使用者看不到應用程式,建議檢查應用程式是否被瀏覽器彈出視窗阻止程序阻止,或者瀏覽器是否正在等待用戶對詢問他們是否要導航到新螢幕的對話框。
位址
網頁透過 URL 位址啟動。 例如:
Launch( "https://bing.com" )
您可以使用 Web 連結 或應用程式 URI (以 /providers/Microsoft.PowerApps/apps/
為前置的應用程式識別碼) 啟動畫布應用程式。 若要尋找應用程式的這些值:
移至 Power Apps。
從左導覽窗格選取 Apps。
選取您的應用程式。
從頂端功能表選取詳細資料。
您也可以選取 ... (其他命令),然後從下拉式功能表中選取 Details。複製 網頁連結。
Web 連結 可在任何網頁中使用,並啟動畫布應用程式。 它也可以搭配 Launch 函式使用。 例如:
Launch( "https://apps.powerapps.com/e/{environment id}/a/{app id}?tenantId={tenantId}" )
無法直接啟動裝置上的原生應用程式。 一些平臺上可能會有間接選項,例如安裝自訂 URL 方案或與網頁瀏覽器註冊的原生應用程式,為特定網站提供選項。
參數
Launch 可以將參數傳遞給網頁或畫布應用程式。 有兩種方式提供參數:
名稱值對的引數清單。 例如:
Launch( "https://bing.com/search", "q", "Power Apps", "count", 1 )
欄位值的記錄。 例如:
Launch( "https://bing.com/search", { q: "Power Apps", count: 1 } )
此表單可讓名稱與值之間的關聯變得更易運作。 這是唯一支援非必要 LaunchTarget 引數的表單。
位址和參數以 URL 方式編碼後再傳遞以使用 %
替換特定非字母數位字元和十六進位數 (彷彿 EncodeUrl 函式已用於每個一樣)。
當您啟動網頁時,參數的 查詢字串 可包括在 URL 位址結尾處。 提供給 Launch 的任何其他參數都會新增至查詢字串的結尾處。 當啟動畫布應用程式時,查詢字串無法運作。
在已執行該應用程式的行動裝置上啟動應用程式時,不會在正在執行的應用程式中重新整理參數。 需要重新載入應用程式才能重新整理參數。
目標
使用 LaunchTarget引數指定要在其中開啟網頁或應用程式的目標瀏覽器視窗。 使用下列其中一個 LaunchTarget列舉值或提供自訂視窗 名稱。
LaunchTarget 列舉 | 描述 |
---|---|
新增功能 | 網頁或應用程式會在新視窗或索引標籤中開啟。 |
取代 | 網頁或應用程式會取代目前視窗或索引標籤。 |
名字 | 您可以使用自己的文字字串 命名 視窗或索引標籤,而不是使用 enum 值。Self 只是由 Launch 函式使用的內部名稱。 這並不影響,也將不符合使用者看到的視窗標題。 如果已存在含給定 名稱 的視窗或索引標籤,將取代其內容。 否則,將建立新視窗或索引標籤。 name 不能以下劃線字元「_」開頭。 |
New 是在 Web 瀏覽器中運行時的預設列舉,其中 Replace 和 name 作為可用選項。 在行動播放器中,新增是網頁的預設而名稱是可用選項;而目前畫布應用程式一律會被其他畫布應用程式取代。
注意
- 在內嵌方案中不支援具有新增以外任何值的 LaunchTarget (例如 Power BI 或 SharePoint),可能會導致意外行為。 在未來,此行為可能會發生變化,或者可能會造成錯誤。
Param
Param 函式會擷取啟動時傳遞至應用程式的參數。 如果未傳遞具名參數,Param 會傳回 空白。
- 當從另一個畫布應用程式啟動畫布應用程式時,請使用 Launch 函式的 參數 引數。 參數名稱和值將會自動進行 URL 編碼。
- 當從網頁啟動畫布應用程式時,請新增參數至 畫布應用程式 web 連結 的 查詢字串。 這包括新增假設查詢字串已為
tenantId
啟動的¶metername=parametervalue
。 例如,新增&First%20Name=Vicki&category=3
會傳遞兩個參數:First Name
,值為"Vicki"
和category
,值為"3"
(數值類型是 Text)。 如果參數名稱和值包含空格或特殊字元 (類似使用 EncodeURL 函式),必須進行 URL 編碼。 - Param 名稱會區分大小寫。
- 將會自動解碼 Param 名稱和值以便用於您的應用程式。
- 除非重新載入應用程式,否則參數值不會改變。 在已執行應用程式的行動裝置上使用啟動不會重新整理參數。
- 即使參數包含數字,由 Param 傳回的類型永遠都是文字字串。 轉換成其他類型時會自動發生或使用顯式轉換如 Value 函式,將顯式轉換為數字。
注意
對於自訂頁面,該頁面接受的唯一參數是:recordId 和 entityName。
語法
Launch(Address[,ParameterName1,ParameterValue1 ,... ])
- Address (位址 )–必填。 網頁的位址或要啟動之應用程式的識別碼。
- ParameterNames —可選。 參數名稱。
- ParameterValues —可選。 要傳遞至應用程式或網頁的對應參數值。
launch (Address,[ParameterName1: ParameterValue1,... ] { } [, LaunchTarget ])
- Address (位址 )–必填。 網頁的位址或要啟動之應用程式的識別碼。
- ParameterNames —可選。 參數名稱。
- ParameterValues —可選。 要傳遞至應用程式或網頁的對應參數值。
- LaunchTarget –可選。 LaunchTarget enum 值或自訂 名稱。
參數 ( 參數名稱 )
- ParameterName - 必需。 傳遞至應用程式的參數名稱。
保留的參數
以下關鍵字保留供內部使用 (不考慮大小寫),不可做為 Param() 函式中的自訂參數:
- amp%3Bauthmode
- amp%3Benableonbehalfof
- amp%3Bhidenavbar
- amp%3Blocale
- appmetadataversion
- authmode
- channeltype
- cordovapath
- correlationid
- 偵錯
- delegatelaunchurl
- delegatelaunchurl
- disablepreviewredirect
- embedderorigin
- enableonbehalfof
- groupid
- hideappsplash
- hidenavbar
- hint
- hostclienttype
- hostmode
- iframecontainerid
- isfullscreen
- ispreviewmode
- loader
- loaderType
- 地區
- location
- packagekind
- packageproperties
- playerresourcespath
- playersessionid
- powerappslanguage
- screencolor
- sdkversion
- site
- skipappmetadata
- skipiframecreation
- skiplaunchappcache
- 來源
- sourcetime
- standaloneconsent
- teamid
- teamtype
- tenantId
- theme
- uselocalpackagehostresources
- userteamrole
範例
簡易啟動
從畫布應用程式到網頁:
公式 | 名描述 |
---|---|
啟動(“http://bing.com/search", "q", "Power Apps", "count", 1 ) |
開啟網頁 https://bing.com/search?q=Power%20Apps&count=1. 會開啟新視窗或索引標籤。 |
啟動(“http://bing.com/search", { q: "Power Apps", count: 1 } ) |
與先前使用相等記錄標記法的範例相同。 會開啟新視窗或索引標籤。 |
啟動(“http://bing.com/search", { q: "Power Apps", count: 1 }, LaunchTarget.Replace ) |
與先前的範例相同,若要在網頁瀏覽器中執行,請將目前的視窗或索引標籤替換為結果。 |
啟動(“http://bing.com/search", { q: "Power Apps", count: 1 }, "Search Results" ) |
與先前範例相同,建立或取代名為 搜尋結果 的視窗或索引標籤內容。 |
從畫布應用程式到畫布應用程式
視需要更新應用程式 ID、畫面名稱及記錄號碼。
Launch( "/providers/Microsoft.PowerApps/apps/YOUR-APP-ID",
{ Navigate: "Second Screen", Record: 34 }
)
從網頁到畫布應用程式
視需要更新應用程式 ID、租用戶 ID、畫面控制項名稱及記錄號碼。
<html>
<body>
<a
href="https://apps.powerapps.com/play/e/YOUR-APP-ENVIRONMENT-ID/a/YOUR-APP-ID?tenantId=YOUR-TENANT-ID&Navigate=Second%20Screen&Record=34"
>
Launch canvas app
</a>
</body>
</html>
簡單 Param
上述 從網頁 或 另一個畫布應用程式 簡易啟動畫布應用程式範例顯示 Param 函式的簡單範例:
公式 | 描述 | 結果 |
---|---|---|
參數(“導航”) | 當應用程式啟動並傳回時,就會提供 Navigate 參數。 | "第二畫面控制項" |
param(“記錄”) | 當應用程式啟動時,就會提供 Record 參數。 即使以數字傳遞給 Launch 函式,從 Param 獲得的結果將是可以隱式或顯式轉換為其他類型的文字字串。 | "34" |
參數(“使用者”) | 不會提供 User 參數。 傳回的 空白 值可以使用 IsBlank 函式測試。 | 空白 |
啟動和 Param 的逐步範例
產品展示 平板電腦配置範本用於下列範例。 若要使用此範本建立應用程式,請依照 建立應用程式 文章的步驟進行,並選取 產品展示 範本。 您也可以使用自己的應用程式。
範例 - 啟動
移至 Power Apps。
從左導覽窗格選取 Apps。
選取您的應用程式,然後選取 Edit。
從功能表選取 Insert,然後選取 Label。
將標籤移到畫面控制項的底部。
從右側的屬性窗格中,選取 Color 為 white,並將 Border thickness 設定為 1。
從右側選取 Text 屬性並將文字輸入為 Surface tablets in news。
從左上部的屬性清單中,選取 OnSelect。
輸入公式為
Launch("https://www.bing.com/news/search","q","Microsoft Surface tablets")
。 您也可以使用您選擇的任何其他 URL、參數和關鍵字。儲存並發佈應用程式。
播放應用程式。
在新聞中選擇標籤 Surface 平板電腦,以使用關鍵字 Surface 平板電腦 Microsoft 啟動新聞搜索。
小費
基於可伸縮性,您可以在 Launch 函式中以 變數 取代手動輸入的關鍵字。
範例 - Param
移至 Power Apps。
從左導覽窗格選取 Apps。
選取您的應用程式,然後選取 Edit。
從功能表選取 Insert,然後選取 Label。
將標籤移到畫面控制項的底部。
從左上部選取標籤的 Text 屬性。
輸入公式為
Param("browser")
。 您也可以使用自己選擇的不同參數。儲存並發佈應用程式。
從 Power Apps 複製應用程式的 Web 連結。
開啟新瀏覽器。
在瀏覽器中貼上應用程式 web 連結,並在結尾處附加
&browser=Microsoft%20Edge
。當您的應用程式啟動時,標籤顯示傳遞的參數值。
關閉應用程式播放器及編輯應用程式。
從左導覽的樹狀結構視圖中選取 App。
選取左上方的 StartScreen 屬性。
輸入公式為
If( Param("screen") = "techspecs", TechSpecs )
。如果 startScreen 屬性中的 function 檢查 parameter 是否等於某個值,在本例中為值 techspecs。 如果相符,則會將 TechSpecs 畫面控制項傳回至 StartScreen 屬性。
注意
如果您使用的不是產品介紹應用程式範本,請將 If 函式中的 TechSpecs 控制項名稱取代為您自己應用程式中的畫面控制項名稱。
儲存並發佈應用程式。
開啟新瀏覽器。
在瀏覽器中貼上應用程式 web 連結,並在結尾處附加
&screen=techspecs
。應用程式會直接以 TechSpecs 做為開始畫面來啟動。