LIFF Inspector は LIFF(LNE Frontend Framework)専用の公式 DevTools です。LIFF Inspector は ChromeDevTools Protocol に準拠し、最新の ChromeDevTools と連携しています。
LIFF browser | ChromeDevTools |
---|---|
📱 デバッグが無効化された LIFF Browser、WebView をデバッグできます
🌍 リモートデバッグ機能
🔬 ChromeDevTools の Elements
,Console
,NetWork
タブをサポート
LIFF Inspector は2つのコンポーネントから構成されています。
- LIFF Inspector Server
- LIFF Inspector Plugin
LIFF Inspector Server は LIFF アプリと ChromeDevTools の通信を中継するサーバーです。 LIFF Inspector Plugin は LIFF Plugin です。 LIFF Plugin は LIFF SDK v2.19.0 以降から利用可能です。
$ npx @line/liff-inspector
Debugger listening on ws://{IP Address}:9222
$ npm install @line/liff-inspector
import liff from '@line/liff';
import LIFFInspectorPlugin from '@line/liff-inspector';
liff.use(new LIFFInspectorPlugin());
LIFF Inspector Plugin は、実際の liff.init
が動作する前に、LIFF Inspector Server に接続を試みます。
そして接続が成功し、 liff.init
が完了すると、LIFF Inspector を使ったデバッグが可能となります。
liff.init({ liffId: 'liff-xxxx' }).then(() => {
// LIFF Inspector has been enabled
});
liff.init
完了後、LIFF Inspector Server は devtools の URL をコンソールに表示します。
$ npx @line/liff-inspector
Debugger listening on ws://{IP Address}:9222
+ connection from client, id: xxx
+ DevTools URL: devtools://devtools/bundled/inspector.html?wss=8a6f-113-35-87-12.ngrok.io/?hi_id=xxx
devtools://devtools/
で始まる URL を Google Chrome で開き、デバッグを開始してください。
LIFF Inspector Server はデフォルト設定ではローカルサーバー ws://localhost:9222
を立ち上げます。そしてデバッグ対象の LIFF アプリは HTTPS (https://liff.line.me/xxx-yyy
) でホストされています。
これは LIFF Inspector Plugin が https://
から ws://
へ接続を試みることを意味し、mixed content となりこの接続はブロックされてしまいます。
Mixed content の問題を解消するために、LIFF Inspector Server は HTTPS (wss://
) でホストされる必要があります。これを達成するために、以下の2つの方法をおすすめします。
- ngrok を使い LIFF Inspector Server を外部公開する
- ngrok を実行
$ ngrok http 9222
- 発行された
xxx-xx-xx-xx.ngrok.io
形式の URL をコピーする$ node -e "const res=$(curl -s -sS http://127.0.0.1:4040/api/tunnels); const url=new URL(res.tunnels[0].public_url); console.log('wss://'+url.host);" wss://xxxx-xxx-xxx.ngrok # Copy this url
- ngrok を実行
Or
- mkcert を使い LIFF Inspector Sever を HTTPS 化する
LIFF Inspector Server が HTTPS 化された後、その URL を LIFF Inspector Plugin に設定する必要があります。
-
コールバック URL の URL サーチクエリに
?li.origin=
を追加するLINE Developers Console から以下のようにコールバック URL の末尾に
?li.origin=
を追加し、LIFF Inspector Server の URL を設定します
Or
-
LIFF Inspector Plugin の
origin
設定を使う// Default origin: ws://localhost:9222 liff.use(new LIFFInspectorPlugin({ origin: 'wss://xxx-xx-xx-xx.ngrok.io' }));
LIFF Inspector Plugin li.origin
クエリ (1)、 origin
設定 (2)の優先順位で URL を使用します。
(疑似コード)
const originFromURL = new URLSearchParams(search).get('li.origin');
const originFromConfig = config.origin;
const defaultOrigin = 'ws://localhost:9222';
connect(originFromURL ?? originFromConfig ?? defaultOrigin);
See https://github.com/cola119/liff-inspector-example
Contributions Welcome!
- To display Elements
- To display overlays
- To remove/add/edit Elements
- To display styles
- To display console logs
-
console.log
-
console.warn
-
console.error
-
console.info
- others
-
- To execute local scripts
- To display simple network logs
- Fetch/XHR
-
fetch()
-
XMLHttpRequest
-
sendBeacon()
- others
-
- Others(JS/CSS/Img/Media/Font...)
- Technically difficult to intercept them...
- Fetch/XHR
- LocalStorage
- SessionStorage
- Cookies
- others
See CONTRIBUTING.md