2010-07-21 6 views
2

J'ai écrit une application avec webview qui affiche m.youtube.com. Cela fonctionne dans d'autres versions android. Cependant, dans Android 2.2, shouldOverrideUrlLoading n'est même pas appelé lorsqu'un lien tel que "rtsp: //vx.cache.youtube.com/..." est cliqué. Est-ce que quelqu'un a le même problème?android 2.2 WebView et WebViewClient RTSP problème

Répondre

3

J'ai trouvé une solution de contournement pour ce problème.

Si vous allez changer le User-Agent de WebView en demandant la page YouTube (http://m.youtube.com/) vous obtiendrez les liens corrects vers les vidéos. Et toutes les vidéos seront ouvertes par l'application interne de YouTube.

Voici petit extrait de code:

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

Il est un peu délicat, mais cela fonctionne. Dans l'attente de trouver une solution, mais pas une solution de contournement.

+0

BTW: J'ai trouvé un autre sujet lié à ceci: http://stackoverflow.com/questions/2645902/can-youtube-be-embedded-in-android-applications-how-about-webos- ou-mûre – rude

1
mWebView.loadUrl(url); 

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