في schema.org، يمثّل الإجراء نشاطًا يمكن تنفيذه على جزء من البيانات المنظَّمة. يتيح Gmail استخدام أنواع متعددة من الإجراءات، ويمكنك تحديد كل نوع باستخدام بيانات منظَّمة مشابهة.
إجراءات الانتقال
إذا أضفت ترميزًا إلى المحتوى باستخدام عناصر schema.org، يمكنك إضافة إجراءات مباشرة إليها. على سبيل المثال، لمنح كيان EmailMessage رابطًا يؤدي إلى ViewAction، املأ السمة potentialAction الخاصة بالبريد الإلكتروني، كما في المثال التالي:
JSON-LD
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://watch-movies.com/watch?movieId=abc123",
"name": "Watch movie"
},
"description": "Watch the 'Avengers' movie online"
}
</script>
البيانات الجزئية
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="potentialAction" itemscope itemtype="http://schema.org/ViewAction">
<link itemprop="target" href="https://watch-movies.com/watch?movieId=abc123"/>
<meta itemprop="name" content="Watch movie"/>
</div>
<meta itemprop="description" content="Watch the 'Avengers' movie online"/>
</div>
تتجاهل برامج البريد الإلكتروني الأخرى التي لا تتوافق مع المخططات في الرسائل الإلكترونية هذا الترميز تلقائيًا.
الربط بصفحة معيّنة على الأجهزة الجوّالة
يمكن أن تؤدي الإجراءات السريعة أيضًا إلى ربط المحتوى مباشرةً بالتطبيقات على الأجهزة الجوّالة التي تعمل بنظامَي التشغيل Android وiOS.
لإنشاء رابط لصفحة معيّنة في تطبيق، أدرِج عناوين URL إضافية target مشفّرة باستخدام المخططين
android-app:// وios-app://، كما هو موضّح في الأمثلة التالية:
JSON-LD
"target": [
"<web url>",
"android-app://<android package name>/<scheme>/<host>/<path+query>",
"ios-app://<App store ID>/<scheme>/<host><path+query>"
]
البيانات الجزئية
<link itemprop="target" href="<web url>"/>
<link itemprop="target" href="android-app://<android package name>/<scheme>/<host>/<path+query>"/>
<link itemprop="target" href="ios-app://<App store ID>/<scheme>/<host>/<path+query>"/>
إليك مثالاً موسّعًا على EmailMessage:
JSON-LD
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"name": "Watch movie",
... information about the movie ...
"potentialAction": {
"@type": "ViewAction",
"target": [
"https://watch-movies.com/watch?movieId=abc123",
"android-app://com.watchmovies.app/http/watch-movies.com/watch?movieId=abc123",
"ios-app://12345/movieapp/watch-movies.com/watch?movieId=abc123"
]
}
}
</script>
البيانات الجزئية
<div itemscope itemtype="http://schema.org/EmailMessage">
<meta itemprop="name" content="Watch movie"/>
... information about the movie ...
<div itemprop="potentialAction" itemscope itemtype="http://schema.org/ViewAction">
<meta itemprop="target" content="https://watch-movies.com/watch?movieId=abc123"/>
<meta itemprop="target" content="android-app://com.watchmovies.android/http/watch-movies.com/watch?movieId=abc123"/>
<meta itemprop="target" content="ios-app://12345/movieapp/watch-movies.com/watch?movieId=abc123"/>
</div>
</div>
إذا لم يكن التطبيق مثبَّتًا على جهاز المستخدِم، سيتم توجيهه إلى عنوان URL على الويب تقدّمه أنت.
الإجراءات داخل التطبيق
يتولّى Gmail تنفيذ الإجراءات داخل التطبيق بدون توجيه المستخدم إلى موقع إلكتروني آخر. يمكنك الإعلان عن إجراءات داخل التطبيق، مثل إجراءات الانتقال إلى صفحة معيّنة، ولكن مع تضمين معلومات إضافية تساعد برامج البريد الإلكتروني (مثل Gmail) في تنفيذ الإجراء بشكل مضمّن.
بدلاً من تعريف إجراء باستخدام target، عرِّف HttpActionHandler للإجراء باستخدام الإعداد المناسب.
على سبيل المثال، يمكنك إضافة زر تأكيد إلى الرسائل الإلكترونية التي تتطلّب من المستخدمين الموافقة على شيء ما أو تأكيده أو الإقرار به. عندما ينقر المستخدم على الزر، ترسل Google طلب HTTP إلى خدمتك، وتسجّل التأكيد. يمكن للمستخدمين التفاعل مع ConfirmAction مرة واحدة فقط.
يضيف المثال التالي زر ConfirmAction إلى رسالة إلكترونية حول تقرير نفقات:
JSON-LD
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ConfirmAction",
"name": "Approve Expense",
"handler": {
"@type": "HttpActionHandler",
"url": "https://myexpenses.com/approve?expenseId=abc123"
}
},
"description": "Approval request for John's $10.13 expense for office supplies"
}
</script>
البيانات الجزئية
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="potentialAction" itemscope itemtype="http://schema.org/ConfirmAction">
<meta itemprop="name" content="Approve Expense"/>
<div itemprop="handler" itemscope itemtype="http://schema.org/HttpActionHandler">
<link itemprop="url" href="https://myexpenses.com/approve?expenseId=abc123"/>
</div>
</div>
<meta itemprop="description" content="Approval request for John's $10.13 expense for office supplies"/>
</div>
الإجراءات التي ستنتهي صلاحيتها
في كثير من الحالات، تكون الإجراءات مناسبة لفترة زمنية محدودة فقط. تنتهي تلقائيًا صلاحية الإجراءات المرتبطة بالكيانات التي لها تواريخ معروفة، مثل حجوزات السفر. لا يعرض Gmail الإجراء بعد انتهاء الرحلة.
يمكنك أيضًا إضافة تواريخ انتهاء صلاحية للإجراءات بشكل صريح. على سبيل المثال، قد يكون الإجراء الخاص بقص قسيمة أو حفظ رمز عرض صالحًا لفترة محدودة فقط. لضبط الفترة الزمنية التي يتم خلالها عرض إجراء معيّن، اضبط السمتَين startTime وendTime للإجراء:
JSON-LD
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ConfirmAction",
"name": "Save coupon",
"handler": {
"@type": "HttpActionHandler",
"url": "https://my-coupons.com/approve?couponId=abc123"
},
"startTime": "2015-06-01T12:00:00Z",
"endTime": "2015-06-05T12:00:00Z"
}
}
</script>
البيانات الجزئية
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="potentialAction" itemscope itemtype="http://schema.org/ConfirmAction">
<meta itemprop="name" content="Save coupon"/>
<div itemprop="handler" itemscope itemtype="http://schema.org/HttpActionHandler">
<link itemprop="url" href="https://my-coupons.com/approve?couponId=abc123"/>
</div>
<meta itemprop="startTime" content="2015-06-01T12:00:00Z" />
<meta itemprop="endTime" content="2015-06-05T12:00:00Z" />
</div>
</div>
محتوى إضافي للقراءة
لمزيد من التفاصيل حول الإجراءات، راجِع:
- التعامل مع طلبات الإجراءات
- الإجراءات الآمنة
- الربط بصفحات معيّنة في تطبيق Android
- الربط بصفحات في تطبيقات iOS