إعلان الإجراءات

يمثّل الإجراء في schema.org فعلاً أو نشاطًا يمكن تنفيذه على جزء من البيانات المنظَّمة. تتوفّر أنواع متعدّدة من الإجراءات ويمكن تحديدها جميعًا باستخدام بيانات منظَّمة مشابهة.

الإجراءات المفضّلة

إذا أضفت ترميزًا إلى المحتوى باستخدام كيانات 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://12345/movieapp/watch-movies.com/watch?movieId=abc123"/>
 </div>
</div>

إذا لم يكن المستخدم قد ثبَّت تطبيقك، سينقل الإجراء المستخدم إلى عنوان URL للويب الذي تقدّمه.

الإجراءات داخل التطبيق

تتم معالجة الإجراءات داخل التطبيق في مكانها، داخل Gmail، بدون إرسال المستخدم إلى موقع إلكتروني آخر. يتمّ الإعلان عن الإجراءات داخل التطبيق مثل الإجراءات التي تؤدي إلى الانتقال إلى صفحات أخرى، ولكنّها تحتوي على معلومات إضافية تسهّل على وكلاء المستخدمين (مثل Gmail) معالجة الإجراء المضمّن.

بدلاً من الإعلان عن الإجراء باستخدام target، يجب تعريف السمة HttpActionHandler للإجراء باستخدام الإعدادات المناسبة.

على سبيل المثال، يمكنك إضافة زر تأكيد إلى الرسائل الإلكترونية التي تتطلب من المستخدمين الموافقة والتأكيد والإقرار بشيء ما. بعد أن ينقر المستخدم على الزر، سيصدر طلب HTTP من Google إلى خدمتك، ويتم تسجيل التأكيد. لا يمكن التفاعل مع 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>

قراءات إضافية

لمزيد من التفاصيل عن "المهام"، يُرجى الاطّلاع على: