Чтение — это функция Google Assistant, доступная на устройствах Android, которая предлагает пользователям еще один способ читать подробный веб-контент, например новостные статьи и сообщения в блогах. Пользователи могут сказать что-то вроде «Эй, Google, прочитай», чтобы приложение прочитало веб-контент вслух, выделило читаемые слова и автоматически прокрутило страницу. Чтобы узнать больше об этой функции, вы также можете прочитать сообщение об обновлении продукта «Прочитать» .
Приложения Android с веб-контентом могут поддерживать функцию Read It, предоставляя информацию Ассистенту с помощью метода onProvideAssistContent()
.
Этот процесс помогает поддерживать структуру данных, которыми они делятся с Ассистентом. Пользователи, которые получают общий контент приложения, затем могут быть связаны глубокими ссылками или получать контент напрямую, а не в виде текста или снимка экрана.
Реализуйте onProvideAssistContent()
для любого веб-контента и любого совместно используемого entity
в вашем приложении.
Предоставьте контент Ассистенту
Чтобы Read It мог получить доступ к вашему контенту, ваше приложение должно предоставить Ассистенту информацию о контенте, например его веб-URI и некоторый базовый контекст. Затем Ассистент может получить ваш контент и прочитать его вслух пользователю.
Для приложений Android, которые уже реализуют веб-контент с помощью WebViews или пользовательских вкладок Chrome, используйте те же веб-URI для чтения в качестве отправной точки.
При объединении функции Read It со встроенными намерениями вам нужно реализовать onProvideAssistContent()
только для конечного действия приложения в потоке задач пользователя после вызова действия приложения.
Например, если ваше приложение отображает новостные статьи, реализуйте onProvideAssistContent()
на последнем экране, показывающем статью; вам не нужно реализовывать его для экранов текущего процесса или предварительного просмотра.
Укажите веб-URI для вашего контента в поле uri
AssistContent
. Предоставьте контекстную информацию в виде объекта JSON-LD, используя словарь Schema.org в поле structuredData
.
В следующем фрагменте кода показан пример предоставления контента Ассистенту:
Котлин
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()
см. в руководстве «Оптимизация контекстного контента для помощника» в документации для разработчиков Android.