Адаптируйте приложение Android WebView для Google Assistant Reader - PullRequest
0 голосов
/ 07 апреля 2020

Я надеюсь адаптировать свое приложение, полностью основанное на WebView, чтобы Google Assistant мог читать содержимое. Это новая функция, которая подробно описана здесь: https://www.blog.google/products/assistant/easier-access-web-pages-let-assistant-read-it-aloud/

В настоящее время я просто пытаюсь заставить ее сначала что-то прочитать, поэтому у меня очень простая настройка приложения с использованием этого макета :

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <WebView
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
</FrameLayout>

В упражнении я попытался установить в приложении тонну различных WebViewSettings, но пока ничего не помогло, и Google Assistant говорит, что страница не поддерживается; однако, когда я открываю ту же самую страницу в Chrome, она может прочитать ее совершенно нормально. Кроме того, если я открою эту страницу в другом приложении (например, Gmail), которое использует пользовательские вкладки Chrome, оно также сможет ее прочитать. Вот мой код для действия, с прокомментированным кодом, являющимся каждой (может быть, больше) настройкой, которую я пробовал:

class FullscreenActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_fullscreen)

        webView.webChromeClient = WebChromeClient()
        webView.settings.javaScriptEnabled = true
//        webView.settings.allowFileAccess = true
//        webView.settings.allowContentAccess = true
//        webView.settings.domStorageEnabled = true
//        webView.settings.javaScriptCanOpenWindowsAutomatically = true
//        webView.settings.useWideViewPort = true
//        webView.settings.allowFileAccessFromFileURLs = true
//        webView.settings.allowUniversalAccessFromFileURLs = true
//        webView.settings.databaseEnabled = true
//        webView.accessibilityDelegate = View.AccessibilityDelegate()
        webView.loadUrl(url)
    }
}

Если у вас есть какие-либо идеи о том, что должно произойти, чтобы это разрешить в приложении я был бы очень признателен. Спасибо!

...