我用webview编写了一个显示m.youtube.com的应用程序。它可以在其他Android版本中工作。然而,在android 2.2中,当点击像“rtsp://vx.cache.youtube.com/…”这样的链接时,shouldroverrideurlloading甚至不被调用。有没有人有同样的问题?
最佳答案
我找到了解决这个问题的办法。
如果您在请求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);
这是有点棘手,但它的工作。期待着找到解决办法,但不是解决办法。