2010-07-21 3 views
2

m.youtube.com을 표시하는 webview로 앱을 작성했습니다. 그것은 다른 안드로이드 버전에서 작동합니다. 그러나 Android 2.2에서는 "rtsp : //vx.cache.youtube.com/..."과 같은 링크를 클릭해도 shouldOverrideUrlLoading이 호출되지 않습니다. 누구도 같은 문제가 있습니까?android 2.2 WebView 및 WebViewClient RTSP 문제

답변

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); 

그것은 조금 까다 롭습니다하지만 작동 :

여기에 약간의 코드입니다. 해결 방법은 찾지 만 해결 방법은 찾을 수 없습니다.

+0

가 BTW :이 관련된 다른 주제를 발견했습니다 http://stackoverflow.com/questions/2645902/can-youtube-be-embedded-in-android-applications-how-about-webos- 또는 블랙 베리 – rude

1
mWebView.loadUrl(url); 

if (url.contains("rtsp")) { 
    Uri uri = Uri.parse(url); 
    Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
    startActivity(intent); 
}