
使用NestJS和Prisma構建REST API:身份驗證
在我最近的一個項目中,我需要實現一個功能:生成帶有用戶名的動態橫幅,用戶可以通過社交媒體分享該橫幅,以展示他們的貢獻。為此,我使用了 html-to-image
包來將指定的 HTML 元素轉換為圖片,并結合 Web Share API 實現了文件的分享功能。
html-to-image
生成 Base64 數據通過 html-to-image
包,可以獲取指定 div
元素的內容(通過其 elementId
),并將其轉換為 Base64 格式的圖片數據。該包支持 Promise,因此在處理過程中可以捕獲潛在的錯誤。
dataUrlToFile
是一個輔助函數,用于將 Base64 數據和文件名作為參數輸入,并返回一個臨時文件位置。以下是該函數的作用:
在分享文件之前,需要確保用戶的設備和瀏覽器支持文件分享功能。可以通過以下代碼進行檢查:
if (navigator.canShare({ files: [file] })) {
// 支持文件分享
}
shareFile
是另一個輔助函數,用于通過 Web Share API 分享文件、標題和文本。以下是關鍵代碼:
navigator.share({
files: [file],
title: '分享標題',
text: '分享文本'
});
通過上述代碼,可以觸發系統的分享功能,顯示所有支持分享的應用選項。
以下是完整的實現邏輯:
// 使用 html-to-image 生成 Base64 數據
htmlToImage.toJpeg(document.getElementById('thanku_poster'))
.then(dataUrl => {
// 轉換 Base64 數據為文件
const file = dataUrlToFile(dataUrl, 'thanku_poster.jpg');
// 檢查是否支持文件分享
if (navigator.canShare({ files: [file] })) {
// 調用 Web Share API 進行分享
navigator.share({
files: [file],
title: '動態橫幅',
text: '這是我的貢獻!'
});
} else {
console.error('當前設備不支持文件分享功能');
}
})
.catch(error => {
console.error('生成圖片失敗', error);
});
通過 Web Share API 和 html-to-image
包的結合,可以輕松實現從 Web 應用程序分享到社交媒體的功能。無論是分享文本、URL,還是文件,Web Share API 都提供了強大的支持。然而,在實際開發中,需要注意 API 的使用限制和設備兼容性問題。
原文鏈接: https://kushkumar636.medium.com/web-apps-share-file-text-urls-over-social-media-96ec654c0b90
使用NestJS和Prisma構建REST API:身份驗證
如何使用 DeepSeek 構建 AI Agent:終極指南
模型壓縮四劍客:量化、剪枝、蒸餾、二值化
Yahoo Finance API – 完整指南
WordPress REST API 內容注入漏洞分析
Transformers Generate 功能介紹
四款AI大模型API價格對比:DeepSeek R1、ChatGPT o3-mini、Grok3、通義千問 Max
四款AI大模型API基礎參數、核心性能的區別:DeepSeek R1、ChatGPT o3-mini、Grok3、通義千問 Max
2025年多模態大模型API基礎參數、核心性能:Deepseek、ChatGPT、文心一言