iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 9
3
Modern Web

認識LIFF容易嗎?系列 第 9

[Day09] LIFF IsInClient

前言

用戶是透過Line的內部瀏覽器開啟LIFF APP的嗎? 若非,要如何對提示相關訊息?

liff.isInClient()

判斷LIFF APP是否透過Line內部瀏覽器開啟。

實作

liff.init({
 liffId: '後台取得的LIFF ID'
}) .then(() => {
 var isInClient = liff.isInClient();
 console.log('isInClient', isInClient);
 $('#isInClient').val(isInClient);
}).catch((err) => {
 console.log('初始化失敗')
});

利用電腦實測,由於是從Chrome瀏覽器執行LIFF APP,所以結果會回傳false
image

透過手機點擊Line聊天室內的LIFF URL,實測的結果會回傳true
image

既然回傳的型別是boolean,就可以用結果去做判斷。

liff.init({
 liffId: '後台取得的LIFF ID'
}) .then(() => {
 if (!isInClient) {
      alert("你用外部瀏覽器開始LIFF APP哦!");
  } else {
      alert("你用Line內部瀏覽器開始LIFF APP哦!");
  }
}).catch((err) => {
 console.log('初始化失敗')
});

當用戶是透過外部瀏覽器,或是Line的內部瀏覽器開啟LIFF APP,分別要做什麼事。
image
image

到目前為止,我們認識了6支API。在Day03的時候,有提過部分API只能在liff.init()後執行。
咦,哪些又是可以在liff.init()前執行咧?
image

//那些可以在liff.init()前執行的API們
console.log('getLanguage', liff.getLanguage());
console.log('getVersion', liff.getVersion());
console.log('isInClient', liff.isInClient());
console.log('getOS', liff.getOS());
console.log('getLineVersion', liff.getLineVersion());
liff.init({
 liffId: '後台取得的LIFF ID'
}) .then(() => {
 console.log('初始化成功');
}).catch((err) => {
 console.log('初始化失敗')
});

今天是平凡的一天,噢不,參加鐵人賽的每一天都不平凡。

參考


上一篇
[Day08] LIFF IsApiAvailable
下一篇
[Day10] LIFF Login 與 IsLoggedIn
系列文
認識LIFF容易嗎?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言