🛠️

Microsoft Teams の Power Apps でアプリがどの環境で実行されているのかを判断する

2022/01/01に公開

Project Oakdale によって Microsoft Teams で Power Apps を作成することができるようになりましたが、たとえば特定のユーザーとのチャットにリンクするなど、Power Apps から Microsoft Teams の機能を呼び出したいことがあると思います。これは Microsoft Teams のディープ リンクを使用することで解決できます。

https://docs.microsoft.com/ja-jp/microsoftteams/platform/concepts/build-and-test/deep-links?WT.mc_id=M365-MVP-5002941

ただし以下のようにして呼び出すと必ずブラウザーが開いてしまいます。

Launch("https://teams.microsoft.com/_#/l/chat/0/0?users=someone@example.com")

Web 版の Teams はまだ問題ないのですが、デスクトップ版の Teams の場合はそのまま遷移してほしいので、以下のように URI スキームで呼び出したいです。

Launch("msteams://teams.microsoft.com/l/chat/0/0?users=someone@example.com")

ということで Web 版の Teams と デスクトップ版の Teams のどちらで実行されているかを判断したいのですが、これは Microsoft Teams から Power Apps を呼び出すときに渡される URL パラメーターを取得することで判断できます。具体的には Param("hostClientType") を呼び出すことで実行されている環境を取得することができます。

  • Web 版の場合

  • デスクトップ版の場合

他にもたとえば Param("theme") とすれば Microsoft Teams で適用しているテーマの情報が取れたりもするので、テーマに合わせてデザインを変えるようなこともできます。

Discussion