Веб-ссылки на m.youtube.com вместо приложения YouTube - PullRequest
0 голосов
/ 17 сентября 2011

У меня есть приложение, открывающее веб-страницу со ссылками на видео с YouTube.

У меня 2 проблемы:

  1. Ссылки открываются на m.youtube.com нормально, но видео не воспроизводятся.Просто выделенный оранжевым, тогда ничего не происходит.

  2. Нет возможности загрузить в приложение YouTube.

Есть идеи?Я тестирую на своем galaxy S2, а не на эмуляторе, так как знаю, что у emu не будет flash или youtube-приложения.

Большое спасибо за любую помощь, вы спасете жизнь!

Вот мой код:

 package com.mytest;

    import android.app.Activity;
    import android.os.Bundle;
    import android.view.KeyEvent;
    import android.view.Window;
    import android.webkit.WebChromeClient;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;

    public class mytestActivity extends Activity

    {

        final Activity activity = this;

        private WebView webview;


        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            // Check if the key event was the BACK key and if there's history
            if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
                webview.goBack();
                return true;
            }
            // If it wasn't the BACK key or there's no web page history, bubble up to the default
            // system behavior (probably exit the activity)
            return super.onKeyDown(keyCode, event);
        }

        @Override
        public void onCreate(Bundle savedInstanceState) {
                        super.onCreate(savedInstanceState);
                        this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
                        setContentView(R.layout.main);

                        // Don't create another webview reference here,
                        // just use the one you declared at class level.
                        webview = (WebView) findViewById(R.id.webview);
                        webview.getSettings().setJavaScriptEnabled(true);
                        webview.getSettings().setPluginsEnabled(true);

                            webview.setWebChromeClient(new WebChromeClient() {
                            public void onProgressChanged(WebView view, int progress)
                            {
                                activity.setTitle("Loading...");
                                activity.setProgress(progress * 100);

                                if(progress == 100)
                                    activity.setTitle(R.string.app_name);
                            }
                        });

            webview.setWebViewClient(new WebViewClient() {
                @Override
                public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
                {
                    // Handle the error
                }

                @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url)
                {
                    view.loadUrl(url);
                    return true;
                }


            });


            webview.loadUrl("http://mytesturl");

    }

1 Ответ

1 голос
/ 18 января 2012

У меня есть это в моем WebViewClient, и он открывает видео YouTube для родного приложения:

 @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (url.contains("youtube.com")){

            int indexStart = url.indexOf("?v=")+3;
            int indexEnd = url.indexOf("&", indexStart);
            if(indexEnd<indexStart)
                return false;
            String videoId = url.substring(indexStart,indexEnd);
            startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("vnd.youtube://"+videoId)));

            return true;
        }
        else
        {
            return false;
        }
    }
...