שיתוף עם Assistant

משתמשים בטלפונים עם Android יכולים לבקש מ-Google Assistant לשתף תוכן של אפליקציות משתמש אחר משתמש בפקודה קולית כמו "Ok Google, send this to David". מבוסס באפשרויות המערכת של המשתמש הראשון, Assistant יכולה לשלב לאחר מכן טקסט במסך או בצילום מסך של מכשיר בתוכן המשותף.

Assistant תוסיף תמונה שנבחרה להודעה כשמתבקשים לעשות זאת.
איור 1. Assistant משתפת תמונה עם איש קשר.

שיטת שיתוף זו מספיקה על פי רוב, אך משתמשים שמקבלים תוכן שותפו מהאפליקציה עשויה לא להזין מחדש את האפליקציה כדי לצפות בתוכן. אפשר לספק Assistant עם מידע מובנה על התוכן הנוכחי בחזית מאת מטמיעים את השיטה onProvideAssistContent().

התהליך הזה עוזר לשמור על מבנה הנתונים בזמן שהם משותפים משתמש. לאחר מכן, משתמשים שמקבלים תוכן משותף מהאפליקציה יכולים להיות מקושרים באמצעות קישור עומק או לקבל ישירות בטקסט, במקום כטקסט או כצילום מסך.

מטמיעים את onProvideAssistContent() לכל entity שאפשר לשתף באפליקציה.

מסירת תוכן ל-Assistant

צריך להטמיע onProvideAssistContent() רק לפעילות הסופית באפליקציה בתהליך המשימה של המשתמש, אחרי שהפעיל את הפעולה באפליקציה. לדוגמה, בתהליך GET_ITEM_LIST, מטמיעים את השיטה במסך הסופי שבו מוצגת רשימת הפריטים. אין צורך להטמיע אותה במסכים של תהליך או תצוגה מקדימה.

מספקים מידע לפי הקשר כאובייקט JSON-LD שימוש באוצר מילים של schema.org בתחביר שדה structuredData של AssistContent. בקטע הקוד הבא מוצג דוגמה לרישום תוכן לפי הקשר ביומן:

Kotlin
override fun onProvideAssistContent(outContent: AssistContent) {
    super.onProvideAssistContent(outContent)

    // JSON-LD object based on Schema.org structured data
    outContent.structuredData = JSONObject()
            .put("@type", "MenuItem")
            .put("name", "Blueberry Crisp Iced Signature Latte")
            .put("url", "https://mysite.com/menuitems/12345a")
            .toString()
}
      
Java
@Override
public void onProvideAssistContent(AssistContent outContent) {
  super.onProvideAssistContent(outContent);

  // JSON-LD object based on Schema.org structured data
  outContent.structuredData = new JSONObject()
          .put("@type", "MenuItem")
          .put("name", "Blueberry Crisp Iced Signature Latte")
          .put("url", "https://mysite.com/menuitems/12345a")
          .toString();
}
      

כדאי לספק כמה שיותר נתונים לגבי כל entity. חובה למלא את השדות הבאים:

  • @type
  • .name
  • .url (חובה רק אם התוכן ניתן לכתובת URL)

מידע נוסף על השימוש ב-onProvideAssistContent() זמין ב המדריך בנושא אופטימיזציה של תוכן לפי הקשר ל-Assistant.