[LIFF][2020鐵人賽][Day 23] LIFF ShareTargetPicker

Shan
C.Shan
Published in
4 min readDec 28, 2020

--

前言

前呼萬喚使出來,先前曾多次提及 liff.shareTargetPicker(),今天終於要來揭開它的面紗惹。

liff.shareTargetPicker()

讓用戶能在 LIFF APP 中,透過開啟的好友選單頁面,以用戶身分,分享 LIFF APP 中的訊息給指定好友。

先來了解 liff.shareTargetPicker() 能否被使用,是與 Line Developers Console中的設定 shareTargetPicker有關。開發者須在後台開啟這項設定,才能在LIFF APP 使用這個方法。

image

版本限制
liff.shareTargetPicker() 只能執行於
Line 10.3.0 以後的版本,如果執行於10.3.0 以前,會得到錯誤訊息。
記得之前有提過可以用 liff.isApiAvailable 的方法,可以檢查用戶當前的版本,是否符合 API 版本要求。除此之外,在
[Day 22] LIFF OpenWindow 這篇,我們也認識到透過 liff.openWindow() 來開啟外部瀏覽器,能讓用戶利用別的方式來使用這個功能。

實作

liff.shareTargetPicker([
{
'type': 'text',
'text': 'Hello, World!'
}
])
.then(function (res) {
if (res) {
// succeeded in sending a message through TargetPicker
console.log(`[${res.status}] Message sent!`)
} else {
const [majorVer, minorVer] = (liff.getLineVersion() || "").split('.');
if (parseInt(majorVer) == 10 && parseInt(minorVer) < 11) {
// LINE 10.3.0 - 10.10.0
// Old LINE will access here regardless of user's action
console.log('TargetPicker was opened at least. Whether succeeded to send message is unclear')
} else {
// LINE 10.11.0 -
// sending message canceled
console.log('TargetPicker was closed!')
}
}
}).catch(function (error) {
// something went wrong before sending a message
console.log('something wrong happen')
})

以電腦用 Chrome 瀏覽器實測:

image

不僅可以將訊息分享給單一好友,也能傳到群組或聊天室內。

以 Line App 內部瀏覽器實測:

image

參考

--

--

Shan
C.Shan
Editor for

過去學習機械理論,現在撰寫網頁程式。我喜歡唱歌,喜歡畫畫,喜歡旅遊,存在藝術的感性,也兼具工程師的理性。腦容量87%,未來期望用文字、影像紀錄經歷。