Полный экран с WebView не функционирует

Я искал способ способствовать тому, чтобы функционировала кнопка полного экрана производителя Video.JS с вида Webview в android.introducir la descripción de la imagen aquí

Это код, который я тестирую, только функционирует с видео youtube.

я увидел, что кнопка полного экрана, если оно функционирует с браузера chrome для мобильных телефонов

Любая помощь я им буду вечно благодарен

MainActivity.java

  import android.app.Activity;
  import android.graphics.Bitmap;
  import android.os.Bundle;
  import android.view.KeyEvent;
  import android.view.LayoutInflater;
  import android.view.View;
  import android.webkit.WebChromeClient;
  import android.webkit.WebView;
  import android.webkit.WebViewClient;
  import android.widget.FrameLayout;

  public class MainActivity extends Activity {
  private WebView webView;
  private FrameLayout customViewContainer;
  private WebChromeClient.CustomViewCallback customViewCallback;
  private View mCustomView;
  private myWebChromeClient mWebChromeClient;
  private myWebViewClient mWebViewClient;

/**
 * Called when the activity is first created.
 */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    customViewContainer = (FrameLayout)    findViewById(R.id.customViewContainer);
    webView = (WebView) findViewById(R.id.webView);

    mWebViewClient = new myWebViewClient();
    webView.setWebViewClient(mWebViewClient);

    mWebChromeClient = new myWebChromeClient();
    webView.setWebChromeClient(mWebChromeClient);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setAppCacheEnabled(true);
    webView.getSettings().setBuiltInZoomControls(true);
    webView.getSettings().setSaveFormData(true);
    webView.loadUrl("http://videojs.com/");
}

public boolean inCustomView() {
    return (mCustomView != null);
}

public void hideCustomView() {
    mWebChromeClient.onHideCustomView();
}

@Override
protected void onPause() {
    super.onPause();    //To change body of overridden methods use File | Settings | File Templates.
    webView.onPause();
}

@Override
protected void onResume() {
    super.onResume();    //To change body of overridden methods use File | Settings | File Templates.
    webView.onResume();
}

@Override
protected void onStop() {
    super.onStop();    //To change body of overridden methods use File | Settings | File Templates.
    if (inCustomView()) {
        hideCustomView();
    }
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {

        if (inCustomView()) {
            hideCustomView();
            return true;
        }

        if ((mCustomView == null) && webView.canGoBack()) {
            webView.goBack();
            return true;
        }
    }
    return super.onKeyDown(keyCode, event);
}

class myWebChromeClient extends WebChromeClient {
    private Bitmap mDefaultVideoPoster;
    private View mVideoProgressView;

    @Override
    public void onShowCustomView(View view, int requestedOrientation, CustomViewCallback callback) {
        onShowCustomView(view, callback);    //To change body of overridden methods use File | Settings | File Templates.
    }

    @Override
    public void onShowCustomView(View view,CustomViewCallback callback) {

        // if a view already exists then immediately terminate the new one
        if (mCustomView != null) {
            callback.onCustomViewHidden();
            return;
        }
        mCustomView = view;
        webView.setVisibility(View.GONE);
        customViewContainer.setVisibility(View.VISIBLE);
        customViewContainer.addView(view);
        customViewCallback = callback;
    }

    @Override
    public View getVideoLoadingProgressView() {

        if (mVideoProgressView == null) {
            LayoutInflater inflater = LayoutInflater.from(MainActivity.this);
            mVideoProgressView = inflater.inflate(R.layout.video_progress, null);
        }
        return mVideoProgressView;
    }

    @Override
    public void onHideCustomView() {
        super.onHideCustomView();    //To change body of overridden methods use File | Settings | File Templates.
        if (mCustomView == null)
            return;

        webView.setVisibility(View.VISIBLE);
        customViewContainer.setVisibility(View.GONE);

        // Hide the custom view.
        mCustomView.setVisibility(View.GONE);

        // Remove the custom view from its container.
        customViewContainer.removeView(mCustomView);
        customViewCallback.onCustomViewHidden();

        mCustomView = null;
    }
}

class myWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        return super.shouldOverrideUrlLoading(view, url);    //To change       body of overridden methods use File | Settings | File Templates.
    }
  }



 }

activity_main.xml

 <?xml version="1.0" encoding="utf-8"?>
   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <WebView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/webView"
        android:layout_gravity="center"
        />
    <FrameLayout
        android:id="@+id/customViewContainer"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:visibility="gone"
        />
    </LinearLayout>
10
задан 03.03.2017, 17:50
0 ответов

Теги

Похожие вопросы