LINEアプリからLIFFをエンドポイントで開いた時の不具合
この記事には、LINE Front-end Framework (LIFF)開発特有の用語を使用しており
LIFF開発の基本的な構成や概念についての解説は含まれていません。
用語が唐突すぎる場合、基本構成を紹介した記事もあるので、よろしければご覧ください。
原則としてLIFFの起動はLIFF URLから
スマートフォンやタブレットのLINEアプリから、LIFFをLIFF URL
ではなくエンドポイント
から起動すると一部の機能が設定どおりに動作しません。
アプリ | 起動URL | 挙動 |
---|---|---|
LINE | LIFF URL | 🙂 正常に動作する[1] |
LINE | エンドポイント | 💀 一部の機能が設定どおりの挙動にならない |
エンドポイントからの起動が起因しているバグはLIFF特有のイレギュラーなので
一般的なWEBアプリ開発のバグを念頭に調査をはじめると、こじれてしまいがちです。
この記事では、エンドポイントからの起動でおこる不具合を特定するヒントとして
実際にあった例をいくつかご紹介します。
- モジュールモードが無効になる
-
target="_blank"
がページ内遷移にかわる - Androidの設定でLINEアプリへ許可した権限が無効
- シェアターゲットピッカーでシェア先を選べない
モジュールモードが無効になる
LIFFの設定でモジュールモードを有効化していると、アプリ上下のUIを省略したシンプルな表示で起動できますが
エンドポイントのURLから直接起動すると、モジュールモードが有効にならず
ブラウザの戻る進むやリロード、外部ブラウザ展開などのUIが表示されます。
この、モジュールモード無効の状態は、表示の違いがわかりやすいため
クライアントチェックで原因不明の不具合の指摘があった場合は「画面の下へブラウザのバーが表示されているか」を質問し、LIFF URLではなくエンドポイントから起動してしまっていないか切り分けるための手がかりにすることが多いです。
target="_blank"
がページ内遷移にかわる
新規ウィンドウで開いてほしいtarget="_blank"
のリンクがページ内遷移として開きます。
Androidの設定でLINEアプリへ許可した権限が無効
LIFFで位置情報やカメラを使用する場合は、Androidの設定からLINEアプリへ権限を許可する設定が必要です
しかし、手順に従ってLINEアプリへ権限を許可していても
LIFFをLIFF URLではなくエンドポイントから起動している場合は必ず拒否する挙動になります。
シェアターゲットピッカーでシェア先を選べない
LIFFの設定でシェアターゲットピッカーを有効にしていても、シェアアカウント選択が真っ白になり操作が続行できなくなります。
おわりに
クライアントチェックや、開発以外の人もまじえたLIFFのテストの際
おなじ機種、おなじテストシナリオにしたがっても、特定の人にだけ発現する不具合が見つかることがあり
その原因が「エンドポイントでLIFFを起動していたから」というケースが、しばしばです。[2]
また、これらは、
LINEアプリ
+ エンドポイント
の組み合わせで起動ときは発現し
ブラウザ
+ エンドポイント
の組み合わせでは発現しないため、
とっさにソースの精査から調査を始めてしまうと、特定がこじれやすく厄介です。
LIFF開発のクセをおさえ、リリース直前チェックでイレギュラーに動じることがないようナレッジをためていきたいものです。
公式資料
Discussion