【发布时间】:2010-07-21 23:27:12
【问题描述】:
我编写了一个带有 webview 的应用程序,它显示 m.youtube.com。它适用于其他安卓版本。但是,在 Android 2.2 中,当单击“rtsp://vx.cache.youtube.com/...”之类的链接时,甚至不会调用 shouldOverrideUrlLoading。有人有同样的问题吗?
【问题讨论】:
我编写了一个带有 webview 的应用程序,它显示 m.youtube.com。它适用于其他安卓版本。但是,在 Android 2.2 中,当单击“rtsp://vx.cache.youtube.com/...”之类的链接时,甚至不会调用 shouldOverrideUrlLoading。有人有同样的问题吗?
【问题讨论】:
我找到了解决这个问题的方法。
如果您在请求 YouTube 页面 (http://m.youtube.com/) 时更改 WebView 的用户代理,您将获得指向视频的正确链接。并且所有视频都将通过 YouTube 内部应用程序打开。
这里是小代码sn-p:
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);
这有点棘手,但它确实有效。期待找到解决方法,但不是解决方法。
【讨论】:
mWebView.loadUrl(url);
if (url.contains("rtsp")) {
Uri uri = Uri.parse(url);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
【讨论】: