عند إنشاء تطبيق ويب، غالبًا ما يكون من المفيد عرض معاينة لمحتوى الرابط - مثل كيفية عرض منصات الوسائط الاجتماعية معاينات الارتباط عند مشاركة عنوان URL. لذلك بدلاً من مجرد نص عنوان url، يمكنك عرض معلومات مثل الصور والوصف أيضًا، بجانب عنوان url.
في هذا المنشور، سأرشدك عبر تضمين الروابط في تطبيق React، أثناء جلب البيانات الوصفية لـ Open Graph (مثل العنوان والصورة والوصف) باستخدام axios وcherio لاستخراج HTML للصفحة المستهدفة.
سنقوم بإنشاء مكون EmbeddedLink بسيط يقوم بجلب البيانات الوصفية لـ Open Graph وعرضها لأي عنوان URL متوفر.
قبل أن نبدأ، تأكد من تثبيت ما يلي:
يمكنك تثبيت Axios وCheerio باستخدام الأوامر التالية:
npm install axios cheerio
سنقوم بإنشاء مكون EmbeddedLink جديد يأخذ عنوان url كدعم ويجلب البيانات الوصفية لـ Open Graph من هذا الارتباط والتي سنستخدمها لاحقًا. إليك الكود الكامل:
import React, { useState, useEffect } from 'react'; import axios from 'axios'; import cheerio from 'cheerio'; const EmbeddedLink = ({ url }) => { const [loading, setLoading] = useState(true); const [error, setError] = useState(null); const [imageUrl, setImageUrl] = useState(''); const [title, setTitle] = useState(''); const [description, setDescription] = useState(''); useEffect(() => { const fetchOGData = async () => { try { const response = await axios.get(url, { headers: { 'origin': 'https://mysite.com' } }); const html = response.data; // Parse HTML content using Cheerio const $ = cheerio.load(html); const ogImage = $('meta[property="og:image"]').attr('content'); const ogTitle = $('meta[property="og:title"]').attr('content'); const ogDesc = $('meta[property="og:description"]').attr('content'); setImageUrl(ogImage || ''); setTitle(ogTitle || ''); setDescription(ogDesc || ''); setLoading(false); } catch (error) { setError(error); setLoading(false); } }; fetchOGData(); }, [url]); if (loading) returnLoading...; if (error) returnError: {error.message}; return ( ); }; export default EmbeddedLink;
يمكنك الآن استخدام مكون EmbeddedLink في تطبيق React الخاص بك مثل هذا:
import React from 'react'; import EmbeddedLink from './EmbeddedLink'; function App() { return (); } export default App;Link Preview Example
سيؤدي هذا إلى عرض معاينة لعنوان URL المقدم، مع صورته وعنوانه ووصفه.
نتعامل مع الأخطاء المحتملة وحالات التحميل من خلال إظهار الرسائل المناسبة للمستخدم:
عند الانتهاء، يجب أن تكون قادرًا على رؤية النتيجة كما في الصورة أدناه.
أفضّل هذا النمط من الرابط المضمن، ولكن يمكنك تصميمه حسب ما تريد وتفضل.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3