Lightning Experience or Classicを各レイヤーで判定する方法

Posted by

Lightning Experience or Classicの各レイヤーでの判定方法

VisualforceやApexなどのLightning Experience(以下ではLEXとします)とClassicのどちらからも呼び出される各レイヤーでの処理中で判定する方法を紹介します。

クライアント(Visualforce)

特にVisualforce等でLEXとClassicのどちらからも呼び出される場合に、どちらのモードで動作しているかを判断するスクリプトは、以下となります。

サーバー(Apex,SOQL)

利用しているモードを判定

ApexでSOQLを発行することによりLEXとClassicのどちらを利用しているかを判定する方法は以下となります。

Lightningユーザ権限の有無を判定

ApexでSOQLを発行することによりLightningユーザ権限を保持しているかを判定する方法は以下となります。
※正確には、付与されている権限セットがあれば、その権限セットの同一カラムを参照する必要もあります。

メタデータ

組織でLEXが有効化されているかを判定する方法は以下となります。
true→有効、false→無効となります。