# ニュース: 【更新】LIFF v2.4.0をリリースしました

【更新】LIFF v2.4.0をリリースしました

2020年9月24日追記

LIFF v2.4.0の利用は、LIFFアプリを閉じずに別のLIFFアプリを開く機能に、不具合が発見されたため非推奨になりました。
この機能を利用するための条件が以下に変わりました。

項目 変更前 変更後
LIFF SDK 2.4.0 2.4.1
LINE 10.16.0 10.18.0

すでにLIFF v2.4.0をお使いの場合は、LIFF v2.4.1へのアップデートをお勧めします。

LIFF v2.4.0をリリースしました。
LIFF v2.4.0における変更点は以下のとおりです。

# LIFFアプリの初期化前でもliff.closeWindow()メソッドが実行できるようになりました

liff.init()メソッドでLIFFアプリを初期化する前に、liff.closeWindow()メソッドを実行できるようになりました。

LIFFアプリ初期化前にliff.closeWindow()メソッドを実行できる条件

LIFF SDKバージョンが2.4.0以上、ユーザーのLINEバージョンが10.15.0以上の場合のみ、LIFFアプリ初期化前にliff.closeWindow()を実行できます。

以下のように、ネットワークエラーや、ユーザーのLINEバージョンなどによってLIFFアプリの初期化に失敗した場合に、liff.closeWindow()メソッドでLIFFアプリを閉じることができます。

liff
  .init({
    liffId: "123456-abcedfg" // Use own liffId
  })
  .then(() => {
    // Start to use liff's api
  })
  .catch((err) => {
    // Error happens during initialization
    console.log(err.code, err.message);
    liff.closeWindow();
  });

詳しくは、『LIFF APIリファレンス』の「liff.closeWindow()」を参照してください。

# LIFFアプリを閉じずに別のLIFFアプリを開くことができるようになりました

画面サイズがFull表示のLIFFアプリ内で、別のLIFFアプリへのリンクをクリックすると、LIFFブラウザを開いたまま別のアプリを表示することができます。
ブラウザが閉じないため、LIFFブラウザの戻るボタンで遷移元のLIFFアプリに戻ることができます。

LIFFアプリを閉じずに別のLIFFアプリに遷移できる条件(2020年9月24日追記)

LIFF v2.4.0では不具合があり、正しく動作しないことがわかりました。この機能の動作条件は以下に変更されています。

  • LIFF SDKバージョンが2.4.1以上、ユーザーのLINEバージョンが10.18.0以上
  • 遷移元のLIFFアプリの画面サイズがFull表示に設定されている
  • 遷移先のLIFFアプリがliff.init()で正しく初期化されている

LIFF-apps-transition

詳しくは、『LIFFドキュメント』の「LIFFアプリから別のLIFFアプリを開いた場合の動作について」を参照してください。

# LIFF URLが意図しないURLへリダイレクトされる不具合を修正しました

LIFF URLに指定した追加情報(例:path/?key=value)は、1次リダイレクト先URLではliff.stateクエリパラメータに含まれます。liff.stateクエリパラメータに追加情報が含まれる場合に、以下のように意図しない2次リダイレクト先URLに遷移する不具合がありました。

問題が発生する条件
  • liff.stateクエリパラメータの先頭に/がない
  • LIFF URLの追加情報の処理方法]が「置換(後方互換性モード)」に設定されいてる

たとえば、[エンドポイントURL]がhttps://example.comに設定されており、liff.stateクエリパラメータがpathだった場合、ドメイン名とパスが/で分離されず、https://example.compathにリダイレクトされていました。
LIFF v2.4.0では、https://example.com/pathに正しくリダイレクトされるよう修正されています。

LIFF URLへのアクセス時の動作について詳しくは、LIFFドキュメントの「LIFF URLにアクセスしてからLIFFアプリが開くまでの動作について」を参照してください。

# liff.permanentLink.createUrl()の不具合を修正しました

LIFFのエンドポイントURLにクエリパラメータ(?key=value)やURLフラグメント(#URL-fragment)などが含まれていた場合、liff.permanentLink.createUrl()を実行した際、場合により追加情報部分がパーマネントリンクに正しく反映されない不具合を修正しました。

# 2次リダイレクト先URLにフラグメントが含まれない不具合を修正しました

LIFFのエンドポイントURLやLIFF URLにURLフラグメントが含まれていた場合、[LIFF URLの追加情報の処理方法]の設定に関わらず、2次リダイレクト先URLにフラグメントが含まれない不具合を修正しました。

2次リダイレクト先URLや[LIFF URLの追加情報の処理方法]の設定による2次リダイレクト先URLへの影響について詳しくは、LIFFドキュメントの「LIFF URLにアクセスしてからLIFFアプリが開くまでの動作について」を参照してください。