В моих попытках создать WebView, который воспроизводит видео YouTube через HTML5 (и не через Flash), я попытался реализовать эту статью дословно, верно в onCreate () моей деятельности:
WebView webView = (WebView) findViewById(R.id.embeddedWebView);
webView.setDownloadListener(new DownloadListener()
{
public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimeType, long size)
{
Log.v("TAG", "url: " + url + ", mimeType: " + mimeType);
Intent viewIntent = new Intent(Intent.ACTION_VIEW);
viewIntent.setDataAndType(Uri.parse(url), mimeType);
try
{
startActivity(viewIntent);
}
catch (ActivityNotFoundException ex)
{
Log.w("YourLogTag", "Couldn't find activity to view mimetype: " + mimeType);
}
}
});
По какой-то причине он не вызывался, поэтому, заметив, что нигде в моем коде я не указываю "реализует DownloadListener", я повторно реализовал его как отдельный класс, который определен как
public class MyDownloadListener implements DownloadListener
и реализует onDownloadStart (), как указано выше (передавая активность в качестве параметра, чтобы она могла вызывать startActivity (). Затем в onCreate () я просто делаю:
mDownloadListener = new MyDownloadListener(this);
mWebView.setDownloadListener(mDownloadListener);
Я попробовал еще раз на YouTube и на http://broken -links.com / tests / video / и до сих пор не вижу в LogCat каких-либо проследить, что onDownloadStart () когда-либо вызывается.
Что мне нужно сделать, чтобы это вызвали? Чего мне не хватает?