LINE活用の基礎

LIFFで外部リンクが別のアプリに開くのはなぜ?|openWindowの指定と端末の確認

小川 靖人文・小川 靖人元LINE社員・LIFE合同会社 代表
この記事の執筆者:元LINE株式会社でLINE公式アカウント活用支援チームの立ち上げを推進し、LINE Green Badge試験問題の作成にも関与。バディカダイレクト元COOとしてLINE中心の販売基盤を構築し、AI接客チャットボット「中野愛作」を開発。詳しいプロフィール →
#LINE公式アカウント#連携#確認手順
この記事は「LINE公式アカウント完全ガイド」の一部です。全体像はこちらから →

この記事の結論

LIFFのopenWindowでURLを開く場合のexternal指定、LINEバージョンとアプリリンクによる違い、外部ブラウザーでの保証範囲を解説。遷移できたことと予約完了を分けて確認します。

最終更新:2026年10月20日

LIFFから外部のページを開くとき、external: trueを指定しても、必ずSafariやChromeだけが開くとは限りません。リンク先がユニバーサルリンクやアプリリンクに対応している場合は、LINEのバージョンと指定によって、対応するアプリへ移ることがあります。まず、どこで起動したLIFFか、指定したURL、external、LINEのバージョンを分けて確認します。

予約先や商品ページへのボタンを作る事業者・開発担当者向けです。画面を閉じるcloseWindowの確認や、起動時のURLパラメーターとは、調べる対象が異なります。

externalを省略した場合と、trueにした場合を分ける

LIFF公式リファレンスのopenWindowでは、urlに完全なURLを指定し、externalで外部ブラウザーを使うかを指定します。既定値はfalseです。

通常の指定の意味は、falseならLINE内ブラウザー、trueなら外部ブラウザーで開くことです。ただし、URLに対応するアプリへの遷移には、次節のバージョン条件があります。「外部」と「指定したブラウザー名」を同じ意味にしないでください。

以下は指定箇所を示す説明用の例です。実装では、自社が案内してよいリンク先かを確認し、初期化の完了後、利用者の操作から開く設計にします。

liff.openWindow({
  url: 'https://example.com/',
  external: true
});

例のURLは実際の予約先ではありません。公開ボタンへそのまま使わず、正しい遷移先に置き換えます。ユーザー入力やURLパラメーターを無検証で渡すと、案内するつもりのないサイトへ進ませるおそれがあります。許可するリンク先を決めてください。

アプリリンクが有効なら、LINEのバージョンも確認する

公式資料のバージョン別条件は、ユニバーサルリンクやアプリリンクが有効なURLを開く場合についての説明です。すべてのWebリンクで同じアプリが開くという意味ではありません。

  • LINE 15.20.0以上:external: falseならLINE内ブラウザー、trueならURLに対応するアプリへ遷移します。
  • LINE 14.20.0以上15.20.0未満:どちらの指定でも、対応するアプリへ遷移します。
  • LINE 14.20.0未満:OSでも異なります。iOSではfalseがLINE内ブラウザー、trueが対応アプリ。Androidではfalseが対応アプリ、trueがデフォルトブラウザーです。

実機で意図と違う場所が開いたら、指定だけを書き換える前に、対象URLのリンク設定と端末側の条件を確認します。iPhoneで一度開けたことだけで、Androidや別バージョンも合格にはしません。

LIFFからリンクを開く前の確認順。最初に起動元がLIFFブラウザーか外部ブラウザーかを区別し、完全なURLとexternal指定を確認する。アプリリンクが有効なURLはLINEのバージョンで開き先が変わる。リンクを開けたことを予約完了とせず、戻った後の受付結果を別に確認する。

図:リンクの開き先と、その先の手続きの結果を分けた確認表です。旧バージョンの条件は本文と公式表も確認してください。

図解画像を開く(保存用)

外部ブラウザーで開いたLIFFでは、同じ動作を保証しない

公式資料では、liff.openWindow()の外部ブラウザーでの利用は保証対象外です。LINEのトークから開いたときに動いても、メールや別のWebサイトから外部ブラウザーで起動した場合まで、同じ動作だと扱わないでください。

外部ブラウザーからも使うサービスでは、通常のWebリンクで進める導線など、その環境に合う方法を設計します。「LIFFの機能を呼べたか」と「利用者が目的のページへ進めたか」をそれぞれ確認します。ログインが繰り返される場合は、開き先だけでなく初期化・ブラウザー・戻り先も調べます。

画面が開いたことと、申し込み完了を分ける

liff.openWindow()の戻り値は「なし」とされています。呼び出しが終わったことを、リンク先で予約や支払いが完了した証拠にはできません。完了の判定は、そのサービスが返す受付結果など、別の根拠で確認します。

架空の予約導線なら、「予約サイトを開く」を押した時点では、まだ入力前かもしれません。LIFFへ戻っただけで「予約ありがとうございます」と表示せず、未完了・確認中・受付完了を区別できる設計にします。外部画面へ進む前に入力が失われないか、戻った人が続きから進めるかも確認してください。

公開前に、起動元とリンク先を組み合わせて試す

許可されたテスト環境で、LINE内からの起動、外部ブラウザーからの起動、通常のWebページ、アプリリンクが有効なページを比べます。OS・LINEバージョン・external指定・実際の開き先・戻った後の状態を残します。

リンク先に必要な本人確認を省く必要はありません。一方、同じ情報を何度も入力させたり、戻り先が分からなくなったりしないかを見ます。画面を増やすことより、相手が目的の手続きを終えられることを基準にしてください。

※仕様確認日:2026年10月20日。設計例であり、実機の予約・決済や実送信は今回行っていません。

この記事に関連するサービス

関連記事