مخصّص حسب نيّة الشراء

يختلف كل تطبيق عن الآخر، ولا تتطابق جميع وظائفه مع إحدى الوظائف المتاحة مهامّ في التطبيقات مضمّنة (BII) بالنسبة للحالات التي لا توجد لوظائف تطبيقك، يمكنك بدلاً من ذلك استخدام نية توسيع نطاق تطبيقك باستخدام "مهامّ في التطبيقات".

وكما هي الحال في BII، تتّبع الأهداف المخصّصة حسب النية بالشراء shortcuts.xml والعمل نقاط الاتصال بين "مساعد Google" وعمليات التنفيذ المحدَّدة مُخَصَّصْ تشتمل الأغراض أيضًا على مَعلمات أهداف، يمكنك ربطها بالمَعلمات في عملية التنفيذ المقابلة.

على عكس BII، تتطلب النوايا المخصّصة حسب النية بالشراء أنماط طلب البحث لوصف نماذج طلبات البحث التي قد يقولها المستخدم. يختلف هذا النهج عن والمقادير المضمنة، التي تصمم طرقًا شائعة يعبّر فيها المستخدمون عن هذا الغرض.

القيود

تخضع الأهداف المخصّصة حسب النية بالشراء للقيود التالية:

  • لا يمكن أن يبدأ اسم الهدف المخصّص حسب النية بالشراء بـ actions.intent.
  • يجب أن يكون اسم الغرض المخصص فريدًا بين أسماء حسب النية بالشراء تطبيقك.
  • تتوفّر أنواع بيانات معيّنة فقط لاستخراجها من قِبل Google. "مساعد Google" (يُرجى الاطّلاع على الأنواع المتوافقة)
  • يجب أن تحتوي النوايا المخصّصة على أمثلة على أنماط طلبات البحث القابلة للاستخدام (اطّلِع على أنماط طلب البحث).
  • يدعم كل طلب بحث معلمتين نصيتين كحد أقصى. لا يتجاوز هذا الحد تطبيقها على أنواع البيانات الأخرى.
  • لا تتوافق الأهداف المخصّصة حسب النية بالشراء إلا مع لغة en-US. وسيستخدم الجهاز و"مساعد Google" أيضًا يجب أن تتطابق إعدادات اللغة.

الأنواع المتوافقة

تتوافق الأهداف المخصّصة مع أنواع schema.org التالية: استخراج المَعلمات:

  • https://schema.org/Text
  • https://schema.org/Date
  • https://schema.org/Time
  • https://schema.org/Number

تحديد إجراءات التطبيقات باستخدام الأهداف المخصّصة

كما هو الحال مع "إجراءات التطبيقات" الأخرى التي تستخدم مؤشرات BII، يمكنك تحديد الغرض من العنصر <capability> في shortcuts.xml

يتم تحديد الإمكانات في العنصر الجذر <shortcuts>. عندما تريد حدِّد عنصر <shortcuts>، ضمِّن مساحات الاسم السمات التي تريد الوصول إليها، كما هو موضح في المثال التالي:

<shortcuts
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
  ...
</shortcuts>

قدِّم اسم الغرض المخصّص حسب النية بالشراء في السمة android:name الإشارة إلى ملف مورد أنماط طلب بحث في queryPatterns.

<shortcuts
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
  <capability
      android:name="custom.actions.intent.EXAMPLE_INTENT"
      app:queryPatterns="@array/ExampleQueries">
    <intent ...>
      <url-template
          android:value="http://custom.com{?number_of_items,item_name}" />
      <parameter
          android:name="number_of_items"
          android:key="number_of_items"
          android:mimeType="https://schema.org/Number" />
      <parameter
          android:name="item_name"
          android:key="item_name"
          android:mimeType="https://schema.org/Text" />
    </intent>
  </capability>
  ...
</shortcuts>

لا يمكن أن تبدأ الأسماء المخصّصة حسب النية بالشراء بـ actions.intent، لأنّ مساحة الاسم هذه محجوزة لمعرّفات BII. بدلاً من ذلك، عندما لتسمية الأهداف المخصّصة، استخدِم البادئة custom.actions.intent للتمييز بين الأهداف المخصّصة حسب النية بالشراء وBII وغرض Android، وهي تعمل بشكل مختلف.

بالنسبة إلى كل مَعلمة، قدِّم نوع schema.org المتوافق. التي تصف معنى المعلمة على أفضل وجه. على سبيل المثال، يمكنك استخدام https://schema.org/Date لوصف التاريخ الذي تتوقّع أن تصلك:

...
<intent>
  <url-template android:value="https://example.com/appt{?apptType,date,time}" />
  <parameter
      android:name="date"
      android:key="date"
      android:mimeType="https://schema.org/Date" />
  ...
</intent>
...

تحديد اختصارات للأهداف المخصّصة في shortcuts.xml باستخدام التنسيق نفسه كاختصارات لمعرّفات BII.

يصف الرمز البرمجي التالي إجراء تطبيق يستخدم طلب البحث المشار إليه أنماط لتشغيل SCHEDULE_APPOINTMENT المخصص حسب النية بالشراء واستخدام مجموعة محددة مجموعة القيم، DRIVERS_LICENSE وVEHICLE_REGISTRATION، لـ apptType .

<shortcuts
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
  <capability
      android:name="custom.actions.intent.SCHEDULE_APPOINTMENT"
      app:queryPatterns="@array/scheduleApptQueries">
    <intent ...>
     <url-template android:value="https://example.com/appt{?apptType,date,time}" />
       <parameter
          android:name="date"
          android:key="date"
          android:mimeType="https://schema.org/Date" />
       <parameter
          android:name="time"
          android:key="time"
          android:mimeType="https://schema.org/Time" />
       <!-- The following parameter has no type because the shortcuts are bound to it -->
       <parameter android:name="apptType" android:key="apptType" />
    </intent>
  </capability>

  <shortcut
      android:shortcutShortLabel="Driver's License"
      android:shortcutId="DRIVERS_LICENSE">
    <capability-binding android:key="custom.actions.intent.SCHEDULE_APPOINTMENT">
      <parameter-binding
          android:key="apptType"
          android:value="@string/driversLicense" />
    </capability-binding>
  </shortcut>

  <shortcut
      android:shortcutsShortLabel="Vehicle Registration"
      android:shortcutId="VEHICLE_REGISTRATION">
    <capability-binding android:key="custom.actions.intent.SCHEDULE_APPOINTMENT">
      <parameter-binding
          android:key="apptType"
          android:value="@string/vehicleRegistration" />
    </capability-binding>
  </shortcut>
</shortcuts>

ويمكنك ضبط مَعلمات مخصّصة حسب النية بالشراء باستخدام مستودع مضمّن، الذي يمكنك استخدامه لتوجيه استخراج الكيانات إلى مجموعة من الكيانات المتاحة المحددة في shortcuts.xml.

أنماط طلب البحث

يتطلب كل نوع مخصّص حسب النية بالشراء التي تستخدمها مجموعة من طلبات البحث المتوقعة من المستخدم لما يلي: هذا المقصد. يختلف هذا الأسلوب عن BII حيث تتطلب طلبات البحث ومصممة للطرق الشائعة التي يعبر بها المستخدمون عن المهام التي يحاولون القيام بها أو المعلومات التي يسعون إليها.

في ملف موارد Android (عادةً ما يكون /res/values/strings.xml)، تحديد طلب بحث الأنماط كعناصر في مصفوفة سلسلة. عندما يكون تم استدعاء إجراء التطبيق، يتحقّق "مساعد Google" من طلب المستخدم وفقًا أنماط طلبات البحث كجزء من مطابقة نية المستخدم بتنفيذها. كل طلب بحث النمط الذي تقدمه يمثل عبارة تعتبرها صالحة حسب نيّة الشراء

عند توفير أنماط طلبات البحث الأهداف المخصّصة حسب النية بالشراء، توقّع أن يتّبع كل نمط استدعاء صريح مثل "فتح تطبيق Example" أو "ابدأ تطبيق Example و." على سبيل المثال، ضع في اعتبارك طلبات بحث المستخدمين التالية:

  • "Ok Google، أريد فتح تطبيق Example Game App والبدء في تحضير الكعكة".
  • "Ok Google، أريد فتح تطبيق Example Game App وبدء تحضير فطيرة تفاح".
  • "Ok Google، أريد تشغيل تطبيق Example Game App وتحضير 5 كعكات".
  • "Ok Google، أريد استخدام تطبيق Example Game لإنتاج الكعك 5 مرات".

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

للإشارة إلى معلمة في نمط طلب بحث، أضف $ إلى اسم في نمطك. على سبيل المثال، لإنشاء قيمة عنصر نائب مثل <parameter name="date1" ... (في actions.xml) أو <parameter android:name="date1" ... (في shortcuts.xml)، أنت تستخدم $date1.

تصف التعليمة البرمجية التالية أنماط طلب البحث التي تطابق المستخدم السابق الاستعلامات واستخراج القيم لأسماء العناصر وعدد العناصر التي سيتم إنشاؤها:

<resources>
  <string-array name="ExampleQueries">
    <item>start making a $text1</item>
    <item>start making an $text1</item>
    <item>craft $number1 $text1 items</item>
    <item>produce $text1 $number1 times</item>
  </string-array>
</resources>

تتيح أنماط طلب البحث استخدام الشرطات الشرطية. مثلاً: set (an)? appointment $date $time في هذه الحالة، يقوم كلاهما بـ "تحديد موعد اليوم ظهرًا" أو "تحديد موعد اليوم ظهرًا" هي طلبات بحث صالحة.