在上一篇,我們認識到有一部分的LIFF API,在使用上是會受到Line、LIFF SDK或作業系統而限制。
如果想要確認API是否能在開啟LIFF APP的環境中可被使用,就必須了解 噔噔!liff.isApiAvailable!(請腦補哆啦A夢的背景音樂)
用於確認指定的LIFF API是否在開啟LIFF APP的環境中可被使用。
同時也會驗證當前開啟LIFF APP的Line版本,是否支援指定的API。
今天實測的apiName是liff.shareTargetPicker!(請腦補花家烹飪教室的背景音樂)
這支API先前有提到,只能使用於Line版本在10.3.0 以上,及iOS或Android的作業系統。
liff.init({
liffId: '後台取得的LIFF ID'
}) .then(() => {
if (liff.isApiAvailable('shareTargetPicker')) {
//todo
} else {
alert("你的 LINE App 暫時不支援 Share Target Picker");
}
}).catch((err) => {
console.log('初始化失敗')
});
從 code 中的 if-else 判斷可知,當 liff.isApiAvailable('apiName') 回傳true,代表 檢查對象(apiName) 在此環境下可以使用;反之回傳false,則無法使用。
在電腦本機利用Chrome瀏覽器實測
在手機利用LINE's in-app browser實測
官方文件和這篇文章,皆有提到: 如果是在外部瀏覽器呼叫,將會永遠回傳 true。
但是用chrome實測的結果,回傳是false。暫時無法確定這句話的意思,希望有神經過,能為此解答。
在手機利用LINE's in-app browser實測
我測試也是說不支援,但是我的Line是12.0以上