【问题标题】:Android WebView (WebChromeClient) Speech Synthesis UndefinedAndroid WebView (WebChromeClient) 语音合成未定义
【发布时间】:2018-07-26 10:44:09
【问题描述】:

我正在尝试在我设置为 WebChromeClient 的 Android WebView 中使用 Web Speech Synthesis API。但是,当我检查页面并运行以下命令时 console.log('speechSynthesis' in window, 'webkitSpeechRecognition' in window, 'speechRecognition' in window); 每个都返回为假、假、假。

如果我在 Android 上使用 Chrome 检查页面,那么它会返回 true、true、false。

通过 Chrome 应用程序打开的用户代理显示为:

“Mozilla/5.0(Linux;Android 8.1.0;Pixel 2 XL Build/OPM1.171019.018) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.137 Mobile Safari/537.36"

Chrome WebView 显示为:

“Mozilla/5.0(Linux;Android 8.1.0;Pixel 2 XL Build/OPM1.171019.018; wv) AppleWebKit/537.36 (KHTML, like Gecko) 版本/4.0 Chrome/64.0.3282.137 移动版 Safari/537.36"

Chrome版本完全一样,只是speechSynthesis不在窗口中。

我在 webview 上启用了以下设置:

    webViewSettings.setJavaScriptEnabled(true);
    webViewSettings.setAllowFileAccessFromFileURLs(true);
    webViewSettings.setAllowUniversalAccessFromFileURLs(true);
    webViewSettings.setAllowContentAccess(true);
    webViewSettings.setAllowFileAccess(true);
    webViewSettings.setDatabaseEnabled(true);
    webViewSettings.setMediaPlaybackRequiresUserGesture(false);

谢谢

【问题讨论】:

  • 我不知道 Android 是怎么回事。一切似乎都很困难。我一直在寻找一整天,但找不到任何东西。据我了解,如果 webview 将使用 chrome 渲染器进行渲染,这将起作用(找不到如何做到这一点)

标签: javascript html webview text-to-speech chromium


【解决方案1】:

代码正确,但您需要将代码从webViewSettings更改为webview.getSettings()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-08
    • 1970-01-01
    • 2020-04-26
    • 1970-01-01
    • 2014-05-21
    • 1970-01-01
    • 2017-07-21
    • 1970-01-01
    相关资源
    最近更新 更多