LIFF v2.15.0をリリースしました。
LIFF v2.15.0では以下の機能追加を行いました。
LIFFアプリ上で二次元コードリーダーを起動するliff.scanCodeV2()メソッドが追加されました。
従来のliff.scanCode()は技術的な問題があり、iOS版LINEバージョン9.19.0以降や外部ブラウザでは使用できませんでしたが、liff.scanCodeV2()では最新のiOS版LINEや外部ブラウザでも二次元コードリーダーを起動できるようになりました。
liff.scanCodeV2()の動作仕様
liff.scanCodeV2()は、内部でjsQRという外部ライブラリを使用しています。そのため、liff.scanCodeV2()メソッド実行時に起動する二次元コードリーダーは、jsQRの動作仕様に依存します。なお、使用ライブラリは予告なく更新、変更される可能性があります。
liff.scanCode()メソッドは非推奨です
従来のliff.scanCode()メソッドは非推奨になります。二次元コードリーダーを実装する場合は、liff.scanCodeV2()メソッドを使用することをお勧めします。
liff.scanCodeV2()を使った二次元コードリーダーの実装方法は、従来のliff.scanCode()と同様です。LINE DevelopersコンソールのLIFFタブで[Scan QR]をオンにした上で、以下のようにliff.scanCodeV2()を実装してください。
liff.scanCodeV2()のサンプルコード:
javascriptliff.scanCodeV2().then(result => {
// result = { value: '' }
});
LINEミニアプリによる二次元コードリーダーのサポートは2021年10月7日を予定しています
liff.scanCodeV2()を使って二次元コードリーダーを起動するには、LINE DevelopersコンソールのLINEログインチャネルのLIFFタブで[Scan QR]をオンにする必要があります。LINEミニアプリチャネルへの[Scan QR]設定の追加は2021年10月7日を予定しています。2021年9月30日現在、LINEミニアプリではliff.scanCodeV2()は利用できません。

liff.scanCodeV2()メソッドの動作環境と、表示される二次元コードリーダーは以下のとおりです。
動作環境従来のliff.scanCode()メソッドは技術的な問題があり、iOS版LINEバージョン9.19.0以降または外部ブラウザでは利用できませんでした。今回追加されたliff.scanCodeV2()メソッドは最新のiOS版LINEや外部ブラウザでも利用できるようになりました。
| OS |
バージョン |
LINEアプリのバージョン |
外部ブラウザ |
| 9.18.0以前 |
9.19.0〜11.6.x |
11.7.0以降 |
| iOS |
11〜14.2 |
❌ |
❌ |
❌ |
✅ ※1 |
| 14.3以降 |
❌ |
❌ |
✅ ※2 |
✅ ※1 |
| Android |
すべてのバージョン |
❌ |
❌ |
✅ ※2 |
✅ ※1 |
| PC |
すべてのバージョン |
❌ |
❌ |
❌ |
✅ ※1 |
※1 WebRTC APIをサポートするブラウザのみ利用できます。
※2 LIFFブラウザの画面サイズがFullの場合のみ利用できます。詳しくは、『LIFFドキュメント』の「LIFFブラウザの画面サイズ」を参照してください。
二次元コードリーダーliff.scanCode()メソッドの場合、AndroidとiOSでは表示される二次元コードリーダーが異なりましたが、liff.scanCodeV2()メソッドの場合、OSの違いによらず以下の画面に統一されます。

二次元コードリーダーを起動すると、FullサイズのLIFFアプリの画面下部からTallサイズのサブウィンドウが表示されます。また、画面右下の
アイコンをクリックすると、読み取り対象の二次元コードを写真から選ぶことができます。
liff.scanCodeV2()を使った二次元コードリーダーの実装について詳しくは、『LIFFドキュメント』の「二次元コードリーダーを表示する」を参照してください。
liff.init()メソッドにwithLoginOnExternalBrowserプロパティが追加されました。通常、外部ブラウザでLIFFアプリにアクセスする場合、liff.login()メソッドで明示的にログイン処理を行う必要があります。今回追加されたwithLoginOnExternalBrowserプロパティにtrueを指定することで、LIFFアプリ初期化時(liff.init()メソッド実行時)にliff.login()メソッドを自動で実行することができるようになりました。

liff.init()メソッドにwithLoginOnExternalBrowserプロパティを追加したサンプルコード:
jsliff.init({
liffId: "123456-abcdef",
withLoginOnExternalBrowser: true, // Enable automatic login process
}).then(() =>
// Start to use liff's api
});
詳しくは、『LIFF APIリファレンス』の「liff.init()」を参照してください。