記錄--HTML問題:如何實現分享URL預覽?

来源:https://www.cnblogs.com/smileZAZ/archive/2023/12/28/17933341.html
-Advertisement-
Play Games

這裡給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 1. 需求分析 為了提高用戶對頁面鏈接分享的體驗,需要對分享鏈接做一些處理。 以 Telegram(國外某一通訊軟體) 為例,當在 Telegram 上分享已做過處理的鏈接時,它會自動嘗試獲取鏈接的預覽信息,包括標題、描述和圖片。 如此當 ...


這裡給大家分享我在網上總結出來的一些知識,希望對大家有所幫助

1. 需求分析

為了提高用戶對頁面鏈接分享的體驗,需要對分享鏈接做一些處理。

以 Telegram(國外某一通訊軟體) 為例,當在 Telegram 上分享已做過處理的鏈接時,它會自動嘗試獲取鏈接的預覽信息,包括標題、描述和圖片。

如此當接收者看到時,可以立即獲取到分享鏈接的一些重要信息。這有助於接收者更好地瞭解鏈接的內容,決定是否點擊查看詳細內容。

2. 實現步驟

2.1 實現前的說明

對於URL分享預覽這個功能問題,在項目中挺常用的,只不過今天我們是以一些框架分享API的底層原理角度來講的。

實現這種功能的關鍵,是在分享的鏈接中嵌入適當的元數據信息,應用軟體會自動解析,請求分享鏈接的預覽信息,並根據返回的元數據生成預覽卡片。

對於國內的應用軟體,目前我試過抖音,它可以實現分享和複製粘貼都自動解析,而微信、QQ等只能實現分享的自動解析。

對於國外的應用軟體,我只實驗過Telegram,它可以實現分享和複製粘貼都自動解析,但我想FacebookTwitterInstagram這些應用應該也都是可以的。

2.2 實現代碼

實現URL鏈接的分享預覽,你可以使用 Open Graph協議或 Twitter Cards,然後在 HTML 的<head> 標簽中,添加以下 meta 標簽來定義鏈接預覽的信息。

使用時,將所有meta全部複製過去,然後根據需求進行自定義即可。

還要註意兩點,確保你頁面的伺服器正確配置了 SSL 證書,以及確保鏈接的URL有效(即:伺服器沒有做白名單限制)。

<head>
  <!-- Open Graph 協議 -->
  <meta property="og:title" content="預覽標題">
  <meta property="og:description" content="預覽描述">
  <meta property="og:image:width" content="圖片寬度">
  <meta property="og:image:height" content="圖片高度">
  <meta property="og:image" content="預覽圖片的URL">
  <meta property="og:url" content="鏈接的URL">
  
  <!-- Twitter Cards -->
  <meta name="twitter:card" content="summary">
  <meta name="twitter:title" content="預覽標題">
  <meta name="twitter:description" content="預覽描述">
  <meta property="twitter:image:width" content="圖片寬度">
  <meta property="twitter:image:height" content="圖片高度">
  <meta name="twitter:image" content="預覽圖片的URL">
  <meta name="twitter:url" content="鏈接的URL">
</head>

下麵我們做一些概念的整理、總結和學習。

3. 問題詳解

3.1 什麼是Open Graph協議?

Open Graph協議是一種用於在社交媒體平臺上定義和傳遞網頁元數據的協議。它由 Facebook 提出,並得到了其他社交媒體平臺的支持和採納。Open Graph 協議旨在標準化網頁上的元數據,使網頁在社交媒體上的分享和預覽更加一致和可控。

通過在網頁的 HTML  標簽中添加特定的 meta 標簽,使用 Open Graph 協議可以定義和傳遞與網頁相關的元數據信息,如標題、描述、圖片等。這些元數據信息可以被社交媒體平臺解析和使用,用於生成鏈接預覽、分享內容和提供更豐富的社交圖譜。

使用 Open Graph 協議,網頁的所有者可以控制鏈接在社交媒體上的預覽內容,確保鏈接在分享時顯示的標題、描述和圖片等信息準確、有吸引力,並能夠準確傳達鏈接的主題和內容。這有助於提高鏈接的點擊率、轉化率和用戶體驗。

Open Graph 協議定義了一組標準的 meta 標簽屬性,如 og:titleog:descriptionog:image 等,用於提供鏈接預覽所需的元數據信息。通過在網頁中添加這些 meta 標簽並設置相應的屬性值,可以實現鏈接預覽在社交媒體平臺上的一致展示。

需要註意的是,Open Graph 協議是一種開放的標準,並不限於 Facebook 平臺。其他社交媒體平臺,如 Twitter、LinkedIn 等,也支持使用 Open Graph 協議定義和傳遞網頁元數據,以實現鏈接預覽的一致性。

3.2 什麼是Twitter Cards?

Twitter Cards 是一種由 Twitter 推出的功能,它允許網站所有者在他們的網頁上定義和傳遞特定的元數據,以便在 Twitter 上分享鏈接時生成更豐富和吸引人的預覽卡片。通過使用 Twitter Cards,網頁鏈接在 Twitter 上的分享可以展示標題、描述、圖片、鏈接和其他相關信息,以提供更具吸引力和信息豐富的鏈接預覽。

Twitter Cards 提供了多種類型的卡片,以適應不同類型的內容和需求。以下是 Twitter Cards 的一些常見類型:

  • Summary CardSummary Card 類型的卡片包含一個標題、描述和可選的圖片。它適用於分享文章、博客帖子等內容。
  • Summary Card with Large ImageSummary Card with Large Image 類型的卡片與 Summary Card 類型類似,但圖片尺寸更大,更突出地展示在卡片上。
  • App CardApp Card 類型的卡片用於分享移動應用程式的信息。它包含應用的名稱、圖標、描述和下載按鈕,以便用戶可以直接從預覽卡片中下載應用。
  • Player CardPlayer Card 類型的卡片用於分享包含媒體播放器的內容,如音頻文件、視頻等。它允許在預覽卡片上直接播放媒體內容。

通過在網頁的 HTML  標簽中添加特定的 meta 標簽,使用 Twitter Cards 可以定義和傳遞與鏈接預覽相關的元數據信息,如標題、描述、圖片、鏈接等。這些元數據信息將被 Twitter 解析和使用,用於生成鏈接預覽卡片。

使用 Twitter Cards 可以使鏈接在 Twitter 上的分享更加吸引人和信息豐富,提高鏈接的點擊率和用戶參與度。它為網站所有者提供了更多控制鏈接在 Twitter 上展示的能力,並提供了一種更好的方式來呈現他們的內容。

 

本文轉載於:

https://juejin.cn/post/7310112330663231515

如果對您有所幫助,歡迎您點個關註,我會定時更新技術文檔,大家一起討論學習,一起進步。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家分享的是i.MXRT1170內部RAM的ECC初始化工作可全部由ROM完成。 痞子衡之前寫了三篇文章 《M7 FlexRAM ECC》、《M4 L-MEM ECC》、《MECC64》 分別介紹了 i.MXRT1170 片上 2MB RAM 的不 ...
  • 一.安裝anaconda3 前往清華園鏡像下載anaconda3的安裝包 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?C=M&O=D 選擇最新鏡像Anaconda3-2023.09-0-Linux-x86_64.sh 安裝 1 bas ...
  • 大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家分享的是i.MXRT1170 MECC64功能特點及其保護片內OCRAM1,2之道。 ECC是 “Error Correcting Code” 的簡寫,ECC 能夠實現錯誤檢查和糾正,含有 ECC 功能的記憶體一般稱為 ECC 記憶體,使用了 EC ...
  • 本文在前一篇文章的基礎上,對進程執行監控工具(execsnoop)進行了升級,實時列印進程執行時傳入的參數列表;並通過 `kprobe` 和 `tracepoint` 兩種方式,綁定 eBPF 程式,給出了代碼實現。同時,對這兩種 eBPF 事件類型進行了簡單比較。顯然,在你手動開發一個 eBPF ... ...
  • jflashlite的燒寫速度要比mdk的燒寫速度快很多。雖然兩者底層都調用了jlink.exe,但是燒寫流程有區別。 MDK比較保守,不管怎麼樣先擦除扇區然後再執行寫入。 jflashlite比較靈活,先進行扇區校驗,如果不一致,才執行擦除和寫入。這會大大提升微小修改的程式燒寫時間。 當然你可以用 ...
  • Partial Update 數據打寬 通過不同的流寫不同的欄位,打寬了數據的維度,填充了數據內容;如下所示: --FlinkSQL參數設置 set `table.dynamic-table-options.enabled` = `true`; SET `env.state.backend` = ` ...
  • 實例項目使用 vite5 + vue3 + ts,項目地址 vite-vue3-charts,預覽地址 https://weizwz.com/vite-vue3-charts 準備工作 1. 註冊為百度地圖開發者 官網地址,然後在 應用管理 -> 我的應用 里,創建應用,創建好後複製 AK 2. 在 ...
  • svelte文件編譯為js後的結構 源代碼: <script lang="ts"> let firstName = '張' let lastName = '三' let age = 18 function handleChangeName() { firstName = '王' lastName = ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...