我用webview编写了一个显示m.youtube.com的应用程序。它适用于其他Android版本。但是,在Android 2.2中,当单击“rtsp://vx.cache.youtube.com / ...”之类的链接时,甚至不会调用shouldOverrideUrlLoading。有没有人有同样的问题?
答案 0 :(得分:3)
我找到了解决此问题的方法。
如果您在请求YouTube页面(http://m.youtube.com/)时更改WebView的用户代理,您将获得指向视频的正确链接。所有视频都将由YouTube内部应用程序打开。
以下是一些代码段:
final String url = "http://m.youtube.com/#/watch?xl=xl_blazer&v=osc8Gvz40C4";
final WebView viewWeb = new WebView(this);
viewWeb.getSettings().setJavaScriptEnabled(true);
String userAgent = viewWeb.getSettings().getUserAgentString();
userAgent = userAgent.replace("Android 2.2", "Android 2.1");
viewWeb.getSettings().setUserAgentString(userAgent);
viewWeb.loadUrl(url);
这有点棘手,但确实有效。期待找到修复但不是解决方法。
答案 1 :(得分:1)
mWebView.loadUrl(url);
if (url.contains("rtsp")) {
Uri uri = Uri.parse(url);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}