# liff.shareTargetPicker()
新增 isMultiple
參數
大家好,我是做出「LINE 數位版名片」的 LINE API 專家均民。
liff.shareTargetPicker()
是 LINE 的 Front-end Framework 中一個很強大的 API,它可以讓開發者在網頁上產生 LINE 中專屬的 Message Object,然後請使用者分享給他的好友或者群組。
LINE 官方部落格在 2021/10/12 發佈了 LIFF v2.16.0 (opens new window),幫這個 API 新增了一個 isMultiple
參數,讓我們能夠限制使用者一次只能傳給一個對象。讓我們一起來看文件 (opens new window),然後用筆者寫的測試程式來測試看看吧!
# isMultiple 參數說明文件 (opens new window)
這個 isMultiple
參數的功能,是用來控制訊息能不能被使用者一次分享給多個目標,當 isMultiple: true
時,選擇好友的畫面會跟之前的版本相同;當 isMultiple: false
時,使用者就沒辦法一次選擇多個對象,同時也不允許使用者把訊息傳送到「群組」跟「聊天」。
在文件中有特別提醒,雖然指定 isMultiple: false
時一次只能選擇一個對象,但是使用者還是可以嘗試多分享幾次,所以如果真的想要嚴格限制可以分享的人數,你會需要在 LIFF 中寫對應的程式碼進行限制。
文件中提供的建議作法是,產生一個一次性連結,放在訊息中讓使用者分享出去,如果這個連結被開啟過一次就會失效,這樣才是真的限制使用者只能把訊息分享給一個對象。
# 測試程式
請點選上方筆者開發的測試網頁,為了方便截圖紀錄,筆者特地把裝置的一些資料也顯示在網頁上:
Android | iOS |
---|---|
接下來,讓我們先點選 isMultiple: true
的按鈕,你可以在選擇好友的視窗看到有「群組」、「好友」和「聊天」三大分類:
Android | iOS |
---|---|
然後目前一次最多可以選擇 10 個對象:
如果使用者選擇至少一個對象分享後,就會回傳分享成功:
Android | iOS |
---|---|
如果使用者沒有分享,又或者是使用者的 LINE 版本太舊(介於 LINE 10.3.0
~ 10.10.0
之間),這個 API 就不會有回傳值:
Android | iOS |
---|---|
接下來,讓我們先點選 isMultiple: false
的按鈕,你可以在選擇好友的視窗看到只剩下「好友」分類:
Android | iOS |
---|---|
而且使用者最多只能選擇一個對象,如果選了其他的,之前選取的對象就會被取消:
Android | iOS |
---|---|
# 原始碼與相關連結
TIP
本文範例程式的原始碼授權為 MIT License,若您有任何疑惑,你可以透過 Facebook (opens new window) 與我聯繫。