【JavaScript】 社群分享按鈕 (Facebook、Line、複製連結)

Line Share 比較麻煩一點,因為手機版跟電腦版的分享呼叫方式不同(官方也似乎沒有打算整合)

需先透過 navigator.userAgent 判斷手機常見瀏覽器類型,再取用不同的導向網址

說明

複製連結的功能直接採用 navigator.clipboard.writeText 主流瀏覽器皆已支援

function socialShare(type, url, text) {
	if (type === 'facebook') {
		return windowOpen('https://www.facebook.com/share.php?u='+url, 'Share', 700, 400);
	}
	if (type === 'line') {
		let openUrl = ''
		if (/phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|Opera Mini|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone/i.test(navigator.userAgent)) {
			openUrl = 'line://msg/text/' + encodeURIComponent(txt + '\n\r' + url);
		} else {
			openUrl = 'https://lineit.line.me/share/ui?url=' + encodeURIComponent(url) + '&text=' + encodeURIComponent(txt);
		}
		return windowOpen(openUrl);
	}
	return navigator.clipboard.writeText(url).then(() =>
		alert('複製連結成功')
	)
}