LIFFの画面を閉じるには|closeWindowの条件と再開される場合の確認
この記事の結論
LIFFの「閉じる」は、外部ブラウザでも同じ動作とは限りません。closeWindowの利用条件、LINEのバージョンと最近使用したサービスによる再開、受付完了・ログアウトとの違いを説明します。
最終更新:2026年10月17日
LIFFアプリの画面を閉じるにはliff.closeWindow()を使います。ただし、画面が閉じたことを、申込内容の保存やログアウトが終わった証拠にはできません。外部ブラウザでは、このメソッドの動作は保証対象外です。
フォームや会員画面の最後に「閉じる」を置く場合は、起動したブラウザ、閉じる前に終える処理、再び開いたときの表示をそれぞれ決めます。
LINE内のLIFFブラウザかを先に確認する
公式のAPIリファレンスでは、liff.closeWindow()に引数や戻り値はありません。成功結果が返るAPIとして待機したり、その戻り値を受付完了の判定にしたりしないでください。
公式の開発ガイドも、liff.isInClient()でLIFFブラウザかを分ける例を示しています。
- LIFFブラウザ:閉じるボタンで
liff.closeWindow()を呼び出す。 - 外部ブラウザ:自動で閉じる前提にせず、「このタブを閉じてください」など、その場で実行できる案内を表示する。
SDK 2.4.0以降では、初期化が終わる前でもliff.closeWindow()を実行できます。これは閉じるメソッドの条件です。ほかのLIFF APIまで初期化前に使える、という意味ではありません。
閉じても、終了せず再開できる場合がある
公式の「LIFFアプリを閉じたときの挙動」では、LINEアプリのバージョンと設定で違いがあります。
LINE 15.12.0以降で、「最近使用したサービス」に表示される条件を満たすLIFFアプリは、閉じてから12時間以内なら再開できます。アクセストークン、閲覧履歴、スクロール位置が保持されます。条件を満たさない場合は閉じると終了し、アクセストークンも無効になります。15.12.0より前も、閉じると終了する挙動です。
すべてのアプリが必ず12時間再開できる、という仕様ではありません。また、画面を閉じるだけで自社サービスのログイン状態や会員連携まで解除されるとは考えないでください。必要なログアウトや連携解除は、それぞれの仕組みで扱います。

受付の結果を見せてから、閉じる操作を選べるようにする
ここからはフォームを設計する際の提案です。公式APIが申込の保存を代行する機能ではありません。
架空の予約希望フォームなら、「送信ボタンを押す→サーバーで保存結果を確認→受付状況を表示→閉じる」の順にします。予約の確定が別途必要なら、受付済みと予約確定も区別します。通信結果が不明なまま閉じてしまうと、利用者はやり直すべきか判断できません。
保存処理と閉じる操作を同時に走らせず、結果が分からない場合は確認先と次の操作を示します。再表示した古い完了画面だけを見て、今回の受付も終わったと扱わない設計が必要です。連打や再送時の受付制御は、フォームの二重送信を防ぐ確認項目で別に整理しています。
公開前は、閉じる操作と再び開く操作を一組で試す
承認されたテスト環境で、次の組み合わせを確認します。
- iPhone・Androidそれぞれで、LIFF URLから開いて閉じる。
- 外部ブラウザで開き、閉じられなくても案内が残るかを見る。
- 保存成功・保存失敗・通信結果不明で、表示と閉じるボタンの状態を確かめる。
- 「最近使用したサービス」から再開できる条件では、古い入力や受付状況をそのまま確定情報として使わないか確認する。
担当者には、端末・LINEバージョン・開き方・閉じる前の状態・再開時の表示をまとめて渡します。必要な確認は残しつつ、利用者が結果を探すために何画面も行き来しなくてよい終わり方にします。
仕様確認日:2026年10月17日。本文のフォームは架空の運用例であり、LIFEや顧客の導入実績ではありません。