2012-08-16 80 views

回答

0

你可以有一個JavaScript文件,該文件將完成這個動作, 後來使用使用loadURL方法上注入它onPageFinished reference

0

我對YouTube視頻的定製iframe的完整的解決方案

WebView webView; 
    ProgressBar progressBar; 
    ImageView back_btn; 

    String video_url = "KK9bwTlAvgo", html = ""; 

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.full_screen_youtube_video_screen); 

     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 

     back_btn = (ImageView) findViewById(R.id.full_videoview_btn); 
      back_btn.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        webView.loadData("", "text/html", "UTF-8"); 
        finish(); 
       } 
      }); 

      webView = (WebView) findViewById(R.id.webView); 
       progressBar = (ProgressBar) findViewById(R.id.progressBar); 

      if (video_url.equalsIgnoreCase("")) { 
       finish(); 
       return; 
      } 

      WebSettings ws = webView.getSettings(); 
      ws.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN); 
      ws.setPluginState(WebSettings.PluginState.ON); 
      ws.setJavaScriptEnabled(true); 
      webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); 
      webView.reload(); 

      if (networkUtil.isConnectingToInternet(Act_VideoPlayer.this)) { 
       html = getHTML(video_url); 
      } else { 
       html = "" + getResources().getString(R.string.The_internet_connection_appears_to_be_offline); 
       CustomToast.animRedTextMethod(Act_VideoPlayer.this, getResources().getString(R.string.The_internet_connection_appears_to_be_offline)); 
      } 

      webView.loadData(html, "text/html", "UTF-8"); 

      WebClientClass webViewClient = new WebClientClass(progressBar); 
      webView.setWebViewClient(webViewClient); 
      WebChromeClient webChromeClient = new WebChromeClient(); 
      webView.setWebChromeClient(webChromeClient); 
    } 




    @Override 
    protected void onDestroy() { 
     super.onDestroy(); 
     try { 
      webView.loadData("", "text/html", "UTF-8"); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

    @Override 
    public void onBackPressed() { 
     super.onBackPressed(); 
     try { 
      webView.loadData("", "text/html", "UTF-8"); 
      finish(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 


    public class WebClientClass extends WebViewClient { 
     ProgressBar ProgressBar = null; 

     WebClientClass(ProgressBar progressBar) { 
      ProgressBar = progressBar; 
     } 

     @Override 
     public void onPageStarted(WebView view, String url, Bitmap favicon) { 
      super.onPageStarted(view, url, favicon); 
      ProgressBar.setVisibility(View.VISIBLE); 
     } 

     @Override 
     public void onPageFinished(WebView view, String url) { 
      super.onPageFinished(view, url); 
      ProgressBar.setVisibility(View.GONE); 
     } 

     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      LogShowHide.LogShowHideMethod("webview-click :", "" + url.toString()); 
      view.loadUrl(getHTML(video_url)); 
      return true; 
     } 
    } 

    public String getHTML(String videoId) { 
     String html = "<iframe class=\"youtube-player\" " + "style=\"border: 0; width: 100%; height: 96%;" 
       + "padding:0px; margin:0px\" " + "id=\"ytplayer\" type=\"text/html\" " 
       + "src=\"http://www.youtube.com/embed/" + videoId 
       + "?&theme=dark&autohide=2&modestbranding=1&showinfo=0&autoplay=1\fs=0\" frameborder=\"0\" " 
       + "allowfullscreen autobuffer " + "controls onclick=\"this.play()\">\n" + "</iframe>\n"; 
     LogShowHide.LogShowHideMethod("video-id from html url= ", "" + html); 
     return html; 
    } 
相關問題