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

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

الانتقال إلى الإجراءات

إذا أضفت ترميزًا إلى المحتوى الخاص بك باستخدام كيانات schema.org، يمكنك إضافة إجراءات Go-To إليها. على سبيل المثال، لجعل كيان EmailMessage يتضمّن رابط Go-To (التنقّل) 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>

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

لمزيد من التفاصيل حول الإجراءات، يُرجى الاطّلاع على: