Inventaris inline

Saat menerapkan Action Aplikasi untuk aplikasi Android, Anda mungkin mendapati diri Anda harus menangani permintaan yang bervariasi pada tema. Misalnya, aplikasi kebugaran menerapkan intent bawaan (BII) START_EXERCISE agar pengguna memulai berbagai aktivitas olahraga dengan menanyakan hal-hal seperti, "Ok Google, mulai lari di Aplikasi Contoh".

Untuk memenuhi intent ini, logika pencocokan permintaan Anda harus menangani setiap intent jenis latihan fisik, termasuk variasi seperti "joging", "sprint", atau "ras". Logika ini dengan cepat menjadi rumit saat olahraga yang didukung meningkat.

Untuk BII yang didukung, seperti START_EXERCISE, Anda dapat menghindari pencocokan kompleks ini logika menggunakan inventaris inline. Inventaris inline adalah kumpulan Pintasan Android yang ditentukan di shortcuts.xml yang merepresentasikan fitur dan konten dalam aplikasi Anda.

Setiap pintasan berisi ID item dan daftar sinonim mewakili variasi dalam bagaimana pengguna mungkin merujuk pada item. Selama pemanggilan, BII membandingkan parameter BII yang diberikan pengguna dengan daftar sinonim. Jika ditemukan kecocokan, parameter BII akan diperbarui ke ID item pintasan yang cocok.

Inventaris inline memungkinkan Asisten Google menyederhanakan parameter BII yang diberikan ke aplikasi Anda selama pemanggilan Action Aplikasi.

Inventaris inline berfungsi seperti tabel pemeta untuk parameter BII, mengekspresikan berbagai cara pengguna merujuk ke fitur atau konten di aplikasi Anda menggunakan pengidentifikasi item yang Anda tentukan. Menyederhanakan pencocokan permintaan aplikasi logika dengan memungkinkan fulfillment Anda mengantisipasi ID item dari BII parameter.

Diagram alur pengguna inventaris inline
Gambar 1. Diagram alur kemampuan START_EXERCISE yang menggunakan inventaris inline untuk menafsirkan nama olahraga yang diberikan pengguna untuk jenis latihan dalam aplikasi.

Batasan dan alternatif

Pintasan inventaris inline memiliki batasan berikut:

  • Batas pintasan: Maksimum 1.000 pintasan inventaris inline dapat yang ditentukan per aplikasi.
  • Batas sinonim: Setiap pintasan inventaris inline dapat berisi maksimum 20 nilai sinonim.
  • Definisi statis: Pintasan inventaris inline dideklarasikan secara statis di shortcuts.xml dan hanya dapat diperbarui untuk pengguna Anda dengan memublikasikan dari aplikasi Anda.

Mengingat persyaratan konfigurasi statis, inventaris inline adalah pilihan terbaik cocok untuk memperluas informasi aplikasi yang tidak sering berubah dan tidak dipersonalisasi untuk Asisten, seperti item menu, rute bus, atau ukuran minuman. Untuk jenis konten lainnya, pertimbangkan alternatif berikut:

  • Inventaris web: memungkinkan Asisten membuat kueri konten web publik saat mencocokkan kueri pengguna dengan ID konten aplikasi yang didukung. Inventaris web kueri terjadi secara real time selama pemanggilan, yang memungkinkan Anda memperluas katalog produk, postingan media sosial, dan konten lain yang sering diperbarui ke Asisten.

  • Pintasan dinamis: memperluas inventaris konten aplikasi yang dipersonalisasi ke Asisten. Pintasan dinamis memungkinkan pengguna memutar ulang kata kunci dengan cepat tindakan, seperti memesan ulang minuman favorit mereka dari aplikasi pemesanan makanan atau menarik daftar belanja di aplikasi pencatat.

Membuat inventaris inline

Inventaris inline menyederhanakan pengembangan dengan memberikan cara praktis kepada Asisten untuk menerjemahkan berbagai cara pengguna meminta konten dan fitur aplikasi ke dalam ID yang dapat diprediksi yang diharapkan oleh aplikasi Anda. Sebagai misalnya, aplikasi Anda menawarkan beragam olahraga yang bisa mulai digunakan pengguna suara mereka, dan aplikasi Anda mengharapkan pengguna membuat permintaan berikut untuk jenis latihan yang sama:

  • Ok Google, mulai sesi lari di Aplikasi Contoh.
  • Ok Google, mulai joging di Aplikasi Contoh.

Dalam pintasan inventaris inline, Anda menetapkan shortcutId ke "CARDIO_RUN", ID olahraga yang diharapkan oleh aplikasi Anda. Kemudian, Anda menentukan "{i>run<i}" dan "joget" sebagai sinonim yang terkait dengan shortcutId. Kemudian, saat pengguna memicu Action Aplikasi Anda dengan kueri sebelumnya, Asisten menggunakan ID "CARDIO_RUN" untuk parameter BII saat menghasilkan intent fulfillment.

Cuplikan berikut dari contoh file app/res/shortcuts.xml mengimplementasikan dalam hal ini:

<capability android:name="actions.intent.START_EXERCISE">
  <intent
    android:targetPackage="com.example.myapp"
    android:targetClass="com.example.myapp.ExerciseActivity">
    <parameter android:name="exercise.name" android:key="exercise" />
  </intent>
</capability>

<shortcut android:shortcutId="CARDIO_RUN">
  <capability-binding android:key="actions.intent.START_EXERCISE">
    <parameter-binding
      android:key="exercise.name"
      android:value="@array/run_names" />
    </capability-binding>
</shortcut>

Pada contoh sebelumnya, shortcut inventaris inline mendeklarasikan tag <parameter-binding> dalam elemen <capability-binding>, yang mengikatnya ke parameter BII exercise.name yang ditentukan dalam <capability>.

Resource array string @array/run_names menentukan daftar sinonim dalam res/values/arrays.xml yang dikenali Asisten dan dipetakan ke ID item "CARDIO_RUN":

<!-- Synonym values for "CARDIO_RUN" inline inventory -->
<resources>
  <string-array name="run_names">
    <item>Run</item>
    <item>Jog</item>
    <item>Sprint</item>
  </string-array>
</resources>

Saat <url-template> disediakan untuk kemampuan tersebut, shortcutId untuk nilai yang cocok dimasukkan ke dalam URL yang dihasilkan di {i>placeholder<i} untuk parameter. Kode berikut dari contoh File app/res/shortcuts.xml mengimplementasikan kasus ini:

<capability android:name="actions.intent.START_EXERCISE">
  <intent>
    <url-template android:value="myapp://workout{?exercise}" />
    <parameter android:name="exercise.name" android:key="exercise" />
  </intent>
</capability>

<shortcut android:shortcutId="CARDIO_RUN">
  <capability-binding android:key="actions.intent.START_EXERCISE">
    <parameter-binding
      android:key="exercise.name"
      android:value="@array/run_names" />
  </capability-binding>
</shortcut>

Pada contoh sebelumnya, Asisten membuat deep link fulfillment myapp://workout?exercise=CARDIO_RUN.

Fulfillment menggunakan intent pintasan

Secara default, pintasan menyediakan shortcutId dari nilai inventaris inline yang cocok dengan intent dari capability tempat pintasan terikat, sebagaimana dideklarasikan di tag <capability-binding> pintasan. Anda dapat menentukan secara opsional bahwa intent yang ditentukan dalam pintasan itu sendiri digunakan untuk fulfillment dengan menambahkan tag <shortcut-fulfillment> ke capability.

Kode berikut dari contoh file app/res/shortcuts.xml diimplementasikan fulfillment pintasan:

<capability android:name="actions.intent.START_EXERCISE">
  <shortcut-fulfillment>
    <parameter android:name="exercise.name"/>
  </shortcut-fulfillment>
</capability>

<shortcut android:shortcutId="CARDIO_RUN">
  <capability-binding android:key="actions.intent.START_EXERCISE">
    <parameter-binding
      android:key="exercise.name"
      android:value="@array/run_names" />
  </capability-binding>
  <intent android:targetPackage="com.example.myapp"
    android:targetClass="com.example.myapp.ExerciseActivity">
    <parameter android:name="exercise.name" android:key="exercise" />
  </intent>
</shortcut>

Pada contoh sebelumnya, jika kueri pengguna cocok dengan nilai inventaris inline untuk parameter exercise.name, tag <shortcut-fulfillment> menetapkan bahwa intent dari pintasan terikat digunakan untuk fulfillment.

Inventaris inline untuk BII fitur aplikasi terbuka

Meskipun secara umum inventaris inline merupakan kemampuan opsional untuk BII yang mendukungnya, inventaris ini diperlukan untuk BII tertentu, seperti OPEN_APP_FEATURE. Ini BII yang biasa digunakan memungkinkan pengguna menerapkan deep link ke fitur aplikasi tertentu menggunakan Asisten. BII fitur aplikasi terbuka memerlukan inventaris inline dari nama fitur aplikasi untuk memverifikasi bahwa ada fitur yang diminta pengguna sebelum melakukan deep linking pengguna ke aplikasi Anda.

Kode berikut dari contoh file app/res/shortcuts.xml mengimplementasikannya BII dengan satu pintasan yang mewakili fitur status pesanan aplikasi:

<capability android:name="actions.intent.OPEN_APP_FEATURE">
  <intent
    android:targetPackage="com.example.myapp"
    android:targetClass="com.example.myapp.MyClass">
    <parameter
       android:name="feature"
       android:key="featureParam" />
  </intent>
  <!-- Required fallback fulfillment to handle when parameters are missing from user query. -->
  <intent
    android:targetPackage="com.example.myapp"
    android:targetClass="com.example.myapp.MyClass">
    <parameter
       android:name="HOME_SCREEN"
       android:key="featureParam" />
  </intent>
</capability>

<!-- Inline inventory for OPEN_APP_FEATURE. -->

<shortcut android:shortcutId="ORDER_STATUS">
  <capability-binding android:key="actions.intent.OPEN_APP_FEATURE">
    <parameter-binding
      android:key="feature"
      android:value="@array/order_status_names" />
    </capability-binding>
</shortcut>

Resource array string di res/values/arrays.xml, @array/order_status_names, menentukan daftar sinonim fitur ini:

<resources>
  <string-array name="order_status_names">
    <item>Order status</item>
    <item>Orders</item>
    <item>Order history</item>
  </string-array>
</resources>

Dengan kemampuan sebelumnya, Asisten dapat memenuhi berbagai frasa untuk fitur yang sama:

  • "Ok Google, tampilkan status pesanan saya di Aplikasi Contoh".
  • "Ok Google, tampilkan pesanan saya di Aplikasi Contoh".
  • "Ok Google, tampilkan histori pesanan saya di Aplikasi Contoh".

Menguji inventaris inline

Uji inventaris Anda dengan memeriksa parameter value BII yang disediakan Asisten untuk aplikasi Anda, sekaligus memenuhi kemampuan Action Aplikasi yang relevan. Iklan inline inventaris berfungsi dengan mengganti nilai yang disediakan pengguna dari BII yang terikat inventaris dengan shortcutId dari pintasan inventaris inline yang cocok.

Sebagai misalnya, kemampuan BII START_EXERCISE mungkin menggunakan inventaris inline untuk terjemahkan parameter BII yang disediakan pengguna "run" untuk latihan yang sesuai ID, "CARDIO_RUN".

Plugin Asisten Google memungkinkan Anda melihat pratinjau Aplikasi inventaris inline Tindakan di Asisten pada perangkat pengujian. Uji inventaris Anda menggunakan plugin dengan mengikuti langkah-langkah berikut:

  1. Konfigurasikan parameter terikat inventaris kemampuan BII Anda dengan nilai sinonim yang terkait dengan inventaris inline Anda.
  2. Picu BII dari plugin, panggil BII di perangkat pengujian Anda.
  3. Periksa parameter value yang dihasilkan yang disediakan Asisten untuk aplikasi selama fulfillment Action Aplikasi.