بخوانش

Read It یک ویژگی دستیار Google است که در دستگاه‌های اندرویدی موجود است که راه دیگری را برای خواندن محتوای طولانی وب مانند مقالات خبری و پست‌های وبلاگ به کاربران ارائه می‌دهد. کاربران می توانند چیزی مانند "Hey Google, read it" را بگویند تا یک برنامه محتوای مبتنی بر وب را با صدای بلند بخواند، کلمات در حال خواندن را برجسته کند و صفحه را به صورت خودکار اسکرول کند. برای کسب اطلاعات بیشتر در مورد این ویژگی، می‌توانید پست به‌روزرسانی محصول Read It را نیز مطالعه کنید.

هنگامی که از شما خواسته می شود، برنامه با کمک Google Assistant محتوای وب را با صدای بلند روی صفحه می خواند.
شکل 1. گوش دادن به یک برنامه که محتوای وب را با صدای بلند می خواند.

برنامه‌های Android با محتوای مبتنی بر وب می‌توانند با ارائه اطلاعات به Assistant با استفاده از روش onProvideAssistContent() Read It را پشتیبانی کنند.

این فرآیند به حفظ ساختار داده‌ها که با Assistant به اشتراک گذاشته می‌شود، کمک می‌کند. کاربرانی که محتوای برنامه به اشتراک گذاشته شده را دریافت می کنند، می توانند به جای متن یا اسکرین شات، به صورت عمیق پیوند داده شوند یا محتوا را مستقیماً دریافت کنند.

onProvideAssistContent() را برای هر محتوای مبتنی بر وب و هر entity قابل اشتراک گذاری در برنامه خود پیاده کنید.

ارائه محتوا به دستیار

برای اینکه Read It بتواند به محتوای شما دسترسی داشته باشد، برنامه شما باید اطلاعاتی درباره محتوا، مانند URI وب و برخی زمینه های اساسی، به دستیار ارائه دهد. سپس دستیار می تواند محتوای شما را بازیابی کند تا با صدای بلند برای کاربر خوانده شود.

برای برنامه‌های Android که قبلاً محتوای مبتنی بر وب را با استفاده از WebViews یا تب‌های سفارشی Chrome پیاده‌سازی می‌کنند، از همان URI‌های وب برای Read It به عنوان نقطه شروع استفاده کنید.

هنگامی که عملکرد Read It را با مقاصد داخلی ترکیب می‌کنید، فقط باید onProvideAssistContent() برای فعالیت نهایی برنامه در جریان کار کاربر پس از فراخوانی App Action پیاده‌سازی کنید.

به عنوان مثال، اگر برنامه شما مقالات خبری را نمایش می دهد، onProvideAssistContent() را در صفحه نهایی که مقاله را نشان می دهد پیاده سازی کنید. شما نیازی به اجرای آن برای هر صفحه نمایش در حال پیشرفت یا پیش نمایش ندارید.

یک URI وب برای محتوای خود در زمینه uri AssistContent ارائه دهید. اطلاعات متنی را به عنوان یک شی JSON-LD با استفاده از واژگان schema.org در قسمت structuredData ارائه دهید.

قطعه کد زیر نمونه ای از ارائه محتوا به Assistant را نشان می دهد:

کاتلین

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

    // Set the web URI for content to be read from a
    // WebView, Chrome Custom Tab, or other source
    val urlString = url.toString()
    outContent.setWebUri(Uri.parse(urlString))

    // Create JSON-LD object based on schema.org structured data
    val structuredData = JSONObject()
        .put("@type", "Article")
        .put("name", "ExampleName of blog post")
        .put("url", outContent.getWebUri())
        .toString()
    outContent.setStructuredData(structuredData)
}

جاوا

@Override
public void onProvideAssistContent(AssistContent outContent) {

  // Set the web URI for content to be read from a
  // WebView, Chrome Custom Tab, or other source
  String urlString = url.toString();
  outContent.setWebUri(Uri.parse(urlString));

  try {
      // Create JSON-LD object based on schema.org structured data
      String structuredData = new JSONObject()
          .put("@type", "Article")
          .put("name", "ExampleName of blog post")
          .put("url", outContent.getWebUri())
          .toString();
      outContent.setStructuredData(structuredData);
  } catch (JSONException ex) {
      // Handle exception
      Log.e(TAG, ex.getMessage());
  }

  super.onProvideAssistContent(outContent);
}

هنگام پیاده سازی onProvideAssistContent() ، تا حد امکان داده های بیشتری را در مورد هر entity ارائه دهید. فیلدهای زیر الزامی است:

  • @type
  • .name
  • .url (فقط در صورتی لازم است که محتوا دارای آدرس URL باشد)

برای کسب اطلاعات بیشتر در مورد استفاده از onProvideAssistContent() ، به بهینه سازی محتوای متنی راهنمای Assistant در مستندات برنامه نویس Android مراجعه کنید.