앱을 빌드할 때 일반적인 시나리오는 특정 화면에 대한 "딥 링크"를 공유해야 하는 것입니다. 딥 링크는 사용자에게 앱의 "홈" 화면에서 탐색하도록 요청하지 않고 특정 화면 및 데이터로 바로 이동하도록 하려는 경우에 유용합니다.
Power Apps로 딥 링크하려면 https://apps.powerapps.com/play/{App ID}?{Query}
URL 구문을 사용합니다.
이 구문에서:
- 앱 ID—앱의 ID입니다. Power Apps>앱> 앱 선택 >세부 정보로 이동합니다.
- 쿼리—쿼리 텍스트를 사용하면 딥 링크에 데이터를 제공할 수 있습니다. 제공된 매개 변수를 사용하여 쿼리 URL을 사용하여 앱을 열려면 캔버스 앱에서 일부 코드를 변경해야 합니다.
이 문서에서는 다음을 수행하는 방법에 대해 알아봅니다.
- 쿼리 매개 변수를 처리하도록 캔버스 앱을 설정합니다.
- 앱 화면에서 직접 딥 링크를 이메일로 보내기 위한 UI를 만듭니다.
- 앱을 사용하여 특정 거래처로 이동하고 딥 링크가 포함된 이메일을 보내고 받은 이메일의 링크를 사용하여 해당 거래처로 직접 앱을 엽니다.
필수 항목
- Power Apps 라이선스
- Power Apps를 처음 사용하는 경우, 앱을 생성한 다음 해당 앱의 컨트롤, 갤러리, 양식 및 카드를 사용자 지정하여 Power Apps 기본 사항에 익숙해지도록 합니다.
- 앱을 만들려면 Environment Maker 보안 역할을 할당받아야 합니다.
앱 만들기
Microsoft Dataverse에 있는 계정 테이블을 사용하여 앱을 만듭니다.
갤러리에 있는 계정 목록을 보여주는 BrowseScreen에 앱이 열립니다. 기본적으로 이 갤러리에는 이메일 주소, 도시 및 거래처 이름이 표시됩니다. 앱에는 DetailScreen 및 EditScreen도 포함되어 있습니다.
탐색 업데이트
이제 사용자를 다른 화면으로 안내하는 데 사용할 컨텍스트를 사용하도록 탐색을 설정합니다.
BrowseScreen 화면에서 갤러리 속성의 레이아웃을 선택하고 제목, 부제 및 본문을 선택합니다
BrowseGallery 갤러리의 첫 번째 레코드를 선택합니다. 그런 다음 OnSelect 아래에 다음을 입력합니다.
Navigate(DetailScreen1, Fade, {accountVal:ThisItem})
Navigate() 함수는 accountVal이라는 컨텍스트 변수를 생성합니다. 이 변수는 갤러리에서 레코드를 선택할 때마다 채워집니다. 레코드를 선택하면 accountVal에서 선택한 값(이 예에서는 거래처)이 있는 DetailScreen으로 이동합니다.
화면 왼쪽의 트리 보기에서 DetailScreen1을 확장하고 DetailForm1을 선택합니다.
화면 오른쪽의 속성 창에서 필드 편집을 선택하고 거래처, 기본 연락처, 이메일 필드를 추가합니다.
DetailForm을 선택하고 항목을 accountVal로 설정합니다.
"거래처 딥 링킹"이라는 이름으로 저장합니다.
앱 ID 받기
앱 ID는 주어진 앱을 나타내는 고유한 GUID이며 앱을 클라우드에 저장할 때 생성됩니다.
앱 ID를 받으려면 새 탭을 열고 Power Apps>앱> 앱 선택 >세부 정보로 이동하십시오. 자세한 내용: 앱 ID 받기
화면에 대한 딥 링크 활성화
이 예의 목표는 앱이 앱 URL의 일부로 accountId 쿼리 매개 변수를 사용하여 시작될 때 사용자를 DetailsScreen1으로 안내하는 것입니다. 이를 위해 앱을 시작하는 동안 제공된 쿼리 문자열 매개 변수를 검색하는 Param() 함수를 사용할 것입니다.
화면 왼쪽의 트리 보기에서 앱을 선택합니다.
팁
Power Apps Studio를 닫은 경우 앱을 편집하여 저장된 "거래처 딥 링킹" 앱을 다시 엽니다.
속성 목록에서 OnStart 속성을 선택합니다.
앱 ID 값을 저장하려면 OnStart 속성 수식을 아래와 같이 업데이트합니다.
Set(AppID, "GUID"); If(Not(IsBlank(Param("accountId"))),Set(accountId,Param("accountId")));
이 수식에서 함수 Set()은 앱 ID를 앱의 GUID로 설정합니다. 그리고 Param() 함수는 비어 있지 않은 경우 accountId 변수에 값을 저장합니다.
참고
위 수식에서 "GUID"를 앱 ID로 적절하게 대체했는지 확인합니다.
앱의 StartScreen 속성을 선택하고 다음을 추가합니다.
If(Not(IsBlank(Param("accountId"))),DetailScreen1,BrowseScreen1)
이 함수는 Param이 비어 있는지 확인한 다음 BrowseScreen1을 유지합니다. 그렇지 않으면 DetailScreen1로 이동합니다.
트리 보기에서 DetailScreen1을 선택합니다.
OnVisible 속성을 선택하고 다음을 입력합니다.
If(Not(IsBlank(accountId)), UpdateContext({accountVal:LookUp(Accounts, Account = GUID(accountId))}))
이 함수는 이전 단계에서 저장한 accountId를 사용하여 accountVal 변수를 설정합니다.
딥 링크 URL 만들기
이제 앱이 거래처 테이블의 거래처에 대한 GUID가 포함된 매개 변수로 accountId를 수신하도록 구성되었습니다. 그리고 이 매개 변수가 앱에 대한 요청과 함께 제공되면 앱은 지정된 accountId로 세부정보 화면(DetailScreen1)을 직접 엽니다.
매개변수 값으로 앱을 호출하려면 다음 구문을 사용해야 합니다.
https://apps.powerapps.com/play/{App ID}?{Query}
위의 구문에서 앱 ID 및 accountId 변수를 포함하는 쿼리와 해당 값을 추가해야 합니다.
예를 들어 샘플 테넌트의 브라우저에 다음 URL을 입력하면 거래처 딥 링킹 앱이 제공된 accountId 매개 변수 값으로 직접 열립니다(이 예에서는 "A. Datum Corporation(샘플)"): https://apps.powerapps.com/play/061b64cd-e5a0-4a7a-a77f-b6f8586dd6c7?accountId=01e5bf81-7d44-ec11-8c60-002248094566
이메일로 딥 링크 보내기
앱 내부에서 지정된 계정의 URL을 호출하는 동안 위에서 설명한 절대 링크를 사용하는 대신 계정의 ID를 가리키도록 변수 accountVal을 제공할 수도 있습니다.
이를 위해 버튼을 만들고 거래처 딥 링킹 앱에서 선택한 계정의 세부 정보 화면으로 가는 딥 링크가 있는 이메일을 앱 내에서 호출하는 기능을 추가합니다.
화면 왼쪽에서 데이터를 선택합니다.
데이터 추가> 검색을 선택하고 Office 365 Outlook>연결을 선택합니다.
참고
이 작업은 Microsoft 365 Outlook 연결을 추가하므로 다음 단계를 사용하여 계정 정보를 공유하는 전자 메일 작성을 호출할 수 있습니다.
트리 보기에서 DetailScreen1을 선택합니다.
화면 오른쪽 아래에 버튼을 삽입하고 거래처 공유로 이름을 변경합니다.
버튼의 OnSelect 속성에 다음을 입력합니다.
Office365Outlook.SendEmailV2("Recipient", "Subject", "Here's the deep link to the selected account - https://apps.powerapps.com/play/{App ID}?accountId=" & accountVal.Account)
이 수식은 Outlook용 Microsoft 365 커넥터를 사용하여 SendEmailV2 작업을 사용하여 이메일을 보냅니다.
참고
위 수식에서 받는 사람, 제목 및 AppID를 받는 사람의 이메일 주소, 이메일 제목, 앱 ID로 바꿉니다.
앱 저장 및 게시.
앱 테스트
앱을 실행하고 아무 계정의 세부 정보 화면으로 이동합니다. 그런 다음 거래처 공유 버튼을 선택합니다. OnSelect 버튼 수식은 이전에 구성된 제목과 본문을 사용하여 수신자에게 이메일을 트리거합니다. 다음은 구성된 앱에서 보낸 샘플 이메일입니다.
이메일을 열고 선택한 계정을 가리키는 딥 링크를 복사합니다. 그러면 기본 찾아보기 화면 대신 거래처 딥 링킹 앱의 계정 세부 정보 화면으로 바로 이동합니다.