Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从未调用DownloadListener.onDownloadStart()_Android_Html_Webview_Android Webview - Fatal编程技术网

Android 从未调用DownloadListener.onDownloadStart()

Android 从未调用DownloadListener.onDownloadStart(),android,html,webview,android-webview,Android,Html,Webview,Android Webview,在我尝试创建一个通过HTML5(而不是Flash)播放YouTube视频的WebView时,我尝试在活动的onCreate()中实现逐字逐句: 由于某种原因,它没有被调用,所以注意到我的代码中没有指定“implements DownloadListener”,我将它重新实现为一个单独的类,定义为 public class MyDownloadListener implements DownloadListener 并如上所述实现onDownloadStart()(将活动作为参数传递,以便它可

在我尝试创建一个通过HTML5(而不是Flash)播放YouTube视频的WebView时,我尝试在活动的onCreate()中实现逐字逐句:

由于某种原因,它没有被调用,所以注意到我的代码中没有指定“implements DownloadListener”,我将它重新实现为一个单独的类,定义为

public class MyDownloadListener implements DownloadListener 
并如上所述实现onDownloadStart()(将活动作为参数传递,以便它可以调用startActivity()。然后在onCreate()中,我只需执行以下操作:

mDownloadListener = new MyDownloadListener(this);
mWebView.setDownloadListener(mDownloadListener);
我在YouTube上再次尝试,但在LogCat中仍然没有看到调用onDownloadStart()的任何跟踪


调用它需要做什么?我缺少什么?

setDownloadListener在WebView认为渲染引擎无法处理内容时设置侦听器

注册当呈现引擎无法处理内容时要使用的接口,并应下载该接口。这将替换当前处理程序


webview使用WebKit渲染引擎,我相信它可以(或认为它可以)处理html5,这样侦听器就不会被调用。

我发现另一篇文章描述了一个类似的问题,但他的“解决方案”声明DownloadListener不工作,并使用onLoadResource作为解决方法。我希望看到一个使DownloadListener工作的解决方案。添加以下代码将解决此问题
WebSettings=webView.getSettings();settings.setLoadsImagesAutomatically(true);
谢谢(+1)对于这个具有教育意义的答案。有没有一种编程方法可以通过只禁用HTML5支持而不禁用JavaScript来验证这一点?到目前为止,这个非常合理的答案无法对视频进行正面验证,因为我还没有找到一种方法可以在不禁用JavaScript的情况下禁用HTML5视频。因此,尽管无法验证这一点,但我必须接受。谢谢
mDownloadListener = new MyDownloadListener(this);
mWebView.setDownloadListener(mDownloadListener);