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