53 lines
1.4 KiB
Plaintext
53 lines
1.4 KiB
Plaintext
//- web_share.pug
|
|
|
|
style.
|
|
#web-share-btn {
|
|
background: var(--btn-bg);
|
|
color: var(--btn-color);
|
|
border: none;
|
|
padding: 0.5rem 1rem;
|
|
border-radius: 8px;
|
|
cursor: pointer;
|
|
transition: all 0.3s;
|
|
}
|
|
#web-share-btn:hover {
|
|
background: var(--btn-hover-color);
|
|
}
|
|
|
|
#web-share-component
|
|
button#web-share-btn(title='分享本文')
|
|
i.fas.fa-share-alt
|
|
span= ' ' + _p('分享')
|
|
|
|
script.
|
|
(() => {
|
|
const setupWebShare = () => {
|
|
const btn = document.getElementById('web-share-btn')
|
|
if (!btn) return
|
|
|
|
// 点击事件处理
|
|
btn.addEventListener('click', async () => {
|
|
if (navigator.share) {
|
|
try {
|
|
await navigator.share({
|
|
title: '!{page.title || config.title}',
|
|
text: '!{truncate(strip_html(page.content), {length: 100})}',
|
|
url: window.location.href
|
|
})
|
|
} catch (err) {
|
|
console.log('分享取消或失败', err)
|
|
}
|
|
} else {
|
|
// 降级处理:比如弹出提示或复制链接
|
|
const shareData = window.location.href
|
|
navigator.clipboard.writeText(shareData).then(() => {
|
|
btf.snackbarShow('系统不支持分享,已将链接复制到剪贴板')
|
|
})
|
|
}
|
|
})
|
|
}
|
|
|
|
// 考虑到 Butterfly 的 Pjax 跳转,需要重新绑定
|
|
setupWebShare()
|
|
document.addEventListener('pjax:complete', setupWebShare)
|
|
})() |