youtube全屏无法正常工作

时间:2017-09-26 01:50:04

标签: javascript android webview youtube android-webview

我花了很多时间为youtube等视频寻找好的全屏信息来激活全屏。我发现了很多信息,但问题是我是android世界的新手。我有一个Web View应用程序和youtube视频启动,播放和工作很好,并重定向我,但问题是全屏,我无法让它工作。我的文件看起来像这样,对不起,我发布了所有文件。

我很抱歉,我提出的问题很多人已经问过堆栈溢出但我找不到合适的信息让它工作。如果有人可以,请帮助我。

如果我必须创建新文件,请告诉我。

提前谢谢。

    package com.example.qrcodegenrate;

    import android.annotation.SuppressLint;
    import android.app.Activity;
    import android.app.ActivityManager;
    import android.content.Intent;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.os.Build;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.KeyEvent;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.Window;
    import android.view.WindowManager;
    import android.webkit.WebView;
    import android.widget.ImageButton;
    import android.graphics.Color;
    import android.net.Uri;
    import android.webkit.WebChromeClient;
    import android.webkit.WebSettings;
    import android.webkit.WebSettings.RenderPriority;
    import android.webkit.WebViewClient;
    import android.view.MotionEvent;
    import apppack.com.R;
    import android.widget.ProgressBar;
    @SuppressLint("SetJavaScriptEnabled") public class GenerateQRCodeActivity extends Activity implements OnClickListener{

       private ProgressBar progressBar;

       @SuppressLint("SetJavaScriptEnabled")
       WebView mWebView = null;
       @SuppressWarnings("deprecation")
       @Override
       public void onCreate(Bundle savedInstanceState) {

          if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

             Bitmap iconBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.launcher_icon);
             ActivityManager.TaskDescription td = new ActivityManager.TaskDescription(null, iconBitmap,Color.rgb(77,195,241));
             setTaskDescription(td);
             iconBitmap.recycle();

          }     

          requestWindowFeature(Window.FEATURE_NO_TITLE);
          getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);     

          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          progressBar = (ProgressBar) findViewById(R.id.progress1);
          playVideo();      

          ImageButton button2 = (ImageButton) findViewById(R.id.button2);
          ImageButton button5 = (ImageButton) findViewById(R.id.button5);
          button2.setOnClickListener(this);
          button5.setOnClickListener(this);

       }

       private void playVideo() {
          try {
             mWebView = (WebView) findViewById(R.id.webview);
             mWebView.getSettings().setJavaScriptEnabled(true);
             mWebView.setWebViewClient(new WebViewClient() {
                public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                }       

             });
             mWebView.setWebChromeClient(new WebChromeClient(){
                @Override
                public void onProgressChanged(WebView view, int newProgress) {
                   super.onProgressChanged(view, newProgress);

                }       

             });
             WebSettings webSettings = mWebView.getSettings();
             webSettings.setJavaScriptEnabled(true);
             mWebView.getSettings().setJavaScriptEnabled(true);
             mWebView.requestFocusFromTouch();
             mWebView.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View mView, MotionEvent event) {
                   switch (event.getAction()) {
                      case MotionEvent.ACTION_DOWN:
                      case MotionEvent.ACTION_UP:
                         try {
                            if (!mView.hasFocus()) {
                               mView.requestFocus();
                            }
                         } catch (Exception e) {
                            e.printStackTrace();
                         }
                         break;

                   }
                   return false;
                }
             });
             mWebView.getSettings().setRenderPriority(RenderPriority.HIGH);
             mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
             mWebView.setBackgroundColor(Color.parseColor("#4dc3f1"));

             mWebView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
             mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
             webSettings.setDomStorageEnabled(true);

             mWebView.setWebViewClient(new WebViewClientDemo());
             mWebView.setWebChromeClient(new WebChromeClientDemo(){
                @Override
                public void onProgressChanged(WebView view, int newProgress) {
                   super.onProgressChanged(view, newProgress);

                }

             });

             mWebView.getSettings().setJavaScriptEnabled(true);
             mWebView.setWebChromeClient(new WebChromeClient());
             mWebView.getSettings().setJavaScriptEnabled(true);

             //    mWebView.loadUrl(URL);
             mWebView.loadUrl("file:///android_asset/apapack/home/index.html");
             mWebView.setWebViewClient(new HelloWebViewClient());
             mWebView.requestFocus(View.FOCUS_DOWN);
             mWebView.getSettings().setJavaScriptEnabled(true);
             mWebView.setHorizontalScrollBarEnabled(false);
             mWebView.setVerticalScrollBarEnabled(false);
             mWebView.setScrollbarFadingEnabled(true);
             mWebView.getSettings().setAllowFileAccess(true);
             mWebView.getSettings().setJavaScriptEnabled(true);
             mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
             mWebView.getSettings().getPluginState();       
          }
          catch (Exception e) {
             e.printStackTrace();
          }

    //    mWebView.loadUrl(URL);        
          getWindow().setFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
                WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
       }        

       private class WebViewClientDemo extends WebViewClient {      

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

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

          }

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

          }
       }
       private class WebChromeClientDemo extends WebChromeClient {
          public void onProgressChanged(WebView view, int progress) {

          }
       }        

       @Override
       public boolean onCreateOptionsMenu(Menu menu) {
          // Inflate the menu; this adds items to the action bar if it is present.
          getMenuInflater().inflate(R.menu.main, menu);
          return true;
       }        

       private class HelloWebViewClient extends WebViewClient {      

          @Override
          public boolean shouldOverrideUrlLoading(WebView webview, String url)
          {
             if (url.startsWith("tel:")) {
                Intent intent = new Intent(Intent.ACTION_DIAL,
                      Uri.parse(url));
                startActivity(intent);
             }else if(url.startsWith("http://") || url.startsWith("https://www.youtube.com/")) {
                mWebView.loadUrl(url);
             }      

          @Override
          public void onScaleChanged(WebView view, float oldScale, float newScale) {
             if (view != null) {
                view.invalidate();
             }
          }
          @Override
          public void onReceivedError(WebView view, int errorCode,
                               String description, String failingUrl) {
             view.loadUrl("file:///android_asset/nointernet.html");
          }
       }    

       public void onClick(View v) {

          switch (v.getId()) {  

             case R.id.button2:

                Intent intent = new Intent("com.google.zxing.client.android.SCAN");
                intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
                startActivityForResult(intent, 0);
                break;

             case R.id.button5:
                mWebView.goBack();
                break;
             // More buttons go here (if any) ...
          }

       }

       public void onActivityResult(int requestCode, int resultCode, Intent intent) {
          if (requestCode == 0) {
             if (resultCode == RESULT_OK) {
                String contents = intent.getStringExtra("SCAN_RESULT");
                Log.i("Barcode Result", contents);
                mWebView.loadUrl(intent.getStringExtra("SCAN_RESULT"));

                //Intent i1 = new Intent(QRCodeSampleActivity.this, webclass.class);
                //startActivity(i1);
                // Handle successful scan
             } else if (resultCode == RESULT_CANCELED) {
                // Handle cancel
                Log.i("Barcode Result","Result canceled");
             }
          }
       }

       public boolean onKeyDown(int keyCode, KeyEvent event) {
          if (event.getAction() == KeyEvent.ACTION_DOWN) {
             switch (keyCode) {
                case KeyEvent.KEYCODE_BACK:
                   if (mWebView.canGoBack()) {
                      mWebView.goBack();
                   } else {
                      finish();
                   }
                   return true;
             }

          }
          return super.onKeyDown(keyCode, event);
       }        

    }

activity_main.xml文件如下所示

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        style="android:textViewStyle"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#f2f2f2"
        android:orientation="vertical"
        android:scrollbars="horizontal|vertical" >

        <Button
            android:id="@+id/btnPlayVideo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Play" />

        <WebView
            android:id="@+id/webview"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_alignParentBottom="true" />

            <ImageButton
            android:id="@+id/button2"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:background="@null"
            android:scaleType="fitXY"
            android:src="@drawable/qrcode_v" />

            <ProgressBar
        android:id="@+id/progressBar"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:indeterminate="false"
        android:maxHeight="2dip"
        android:minHeight="4dip"
        android:progress="0"
        android:progressDrawable="@drawable/greenprogress" />

            <ImageButton
                android:id="@+id/button5"
                android:layout_width="40dp"
                android:layout_height="40dp"
                android:layout_alignParentBottom="true"
                android:layout_alignParentLeft="true"
                android:background="@null"
                android:scaleType="fitXY"
                android:src="@drawable/back_button" />


        <ProgressBar
        android:id="@+id/progress1"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:layout_width="wrap_content"
        android:indeterminateDrawable="@drawable/my_progress_indeterminate"
        android:layout_height="wrap_content" />

     </RelativeLayout>

0 个答案:

没有答案