App webview does not work perfect with YouTube

0

Create a webview app from my website, on PC it works perfectly www.pipocaplayfm.com now in the webview it does not play the videos as on the website - Link from app link

Is there any solution I can apply to it to work properly?

My code:

'package com.creator.music;

import android.os.Bundle; import android.annotation.SuppressLint; import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.graphics.Bitmap; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Handler; import android.view.View; import android.view.Window; import android.view.animation.TranslateAnimation; import android.webkit.WebSettings; import android.webkit.WebSettings.RenderPriority; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.ProgressBar; import android.widget.RelativeLayout; import android.widget.Toast;

public class MainActivity extends Activity {

// set your custom url here
String url = " http://bemusic.vebto.com";
boolean doubleBackToExitPressedOnce = false;

// if you want to show progress bar on splash screen
Boolean showProgressOnSplashScreen = true;

WebView mWebView;
ProgressBar prgs;
RelativeLayout splash, main_layout;


@SuppressWarnings("deprecation")
@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);
    getWindow().setFeatureInt(Window.FEATURE_PROGRESS, Window.PROGRESS_VISIBILITY_ON);
    mWebView = (WebView) findViewById(R.id.wv);
    prgs = (ProgressBar) findViewById(R.id.progressBar);
    main_layout = (RelativeLayout) findViewById(R.id.main_layout);

    // splash screen View

    if (!showProgressOnSplashScreen)
        ((ProgressBar) findViewById(R.id.progressBarSplash)).setVisibility(View.GONE);
    splash = (RelativeLayout) findViewById(R.id.splash);

// if (Build.VERSION.SDK_INT > = Build.VERSION_CODES.KITKAT) { // // // get status bar height to push webview below that // int result = 0; // int resourceId = getResources (). getIdentifier ("status_bar_height", // "dimen", "android"); // if (resourceId > 0) { // result = getResources (). getDimensionPixelSize (resourceId); //} // // // set top padding to status bar // main_layout.setPadding (0, result, 0, 0); //}

    ConnectivityManager cm = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
    if (activeNetwork != null && activeNetwork.isConnected()) {

        mWebView.loadUrl(url);
        Toast.makeText(this,"Recommended to use 3G/4G or Wifi ",Toast.LENGTH_LONG).show();
        // control javaScript and add html5 features
        mWebView.setFocusable(true);
        mWebView.setFocusableInTouchMode(true);
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.getSettings().setRenderPriority(RenderPriority.HIGH);
        mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
        mWebView.getSettings().setDomStorageEnabled(true);
        mWebView.getSettings().setAppCacheEnabled(true);
        mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
        mWebView.getSettings().setDatabaseEnabled(true);
        mWebView.getSettings().setDatabasePath(
                this.getFilesDir().getPath() + this.getPackageName()
                        + "/databases/");

        // this force use chromeWebClient
        mWebView.getSettings().setSupportMultipleWindows(true);

        mWebView.setWebViewClient(new WebViewClient() {

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

            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
                if (prgs.getVisibility() == View.GONE) {
                    prgs.setVisibility(View.VISIBLE);
                }
            }

            @Override
            public void onLoadResource(WebView view, String url) {
                super.onLoadResource(view, url);
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);

                if (prgs.getVisibility() == View.VISIBLE)
                    prgs.setVisibility(View.GONE);

                // check if splash is still there, get it away!
                if (splash.getVisibility() == View.VISIBLE)
                    splash.setVisibility(View.GONE);
                slideToBottom(splash);

            }

        });

    }
    else{

        //Toast.makeText(this,"Your Device is not connected to Internet , Please Turn ON Data Services",Toast.LENGTH_LONG).show();

        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Error");
        builder.setMessage("No Network Connection").setCancelable(false)
                .setIcon(R.drawable.logo)
                .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        finish();
                    }
                });
        AlertDialog alert = builder.create();
        alert.show();

        Toast.makeText(this,"Your Device is not connected to Internet , Recommended to use 3G/4G or Wifi ",Toast.LENGTH_LONG).show();

    }

}




/**
 * To animate view slide out from top to bottom
 *
 *
 */
void slideToBottom(View view) {
    TranslateAnimation animate = new TranslateAnimation(0, 0, 0,
            view.getHeight());
    animate.setDuration(2000);
    animate.setFillAfter(true);
    view.startAnimation(animate);
    view.setVisibility(View.GONE);
}

/*@Override
public boolean onKeyDown(final int keyCode, final KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
        mWebView.goBack();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}*/
public void onBackPressed() {
    if (doubleBackToExitPressedOnce) {
        super.onBackPressed();
        return;
    }

    this.doubleBackToExitPressedOnce = true;
    Toast.makeText(this, "Please click BACK again to exit", Toast.LENGTH_SHORT).show();

    new Handler().postDelayed(new Runnable() {

        @Override
        public void run() {
            doubleBackToExitPressedOnce=false;
        }
    }, 2000);
}

} '

    
asked by anonymous 27.06.2017 / 03:56

1 answer

0

If you are using Android Studio, do the following in your java file, in the webview creation part:

    Toast.makeText(this,"Recommended to use 3G/4G or Wifi ",Toast.LENGTH_LONG).show();
    // control javaScript and add html5 features
    mWebView.setFocusable(true);
    mWebView.setFocusableInTouchMode(true);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setRenderPriority(RenderPriority.HIGH);
    mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
    mWebView.getSettings().setDomStorageEnabled(true);
    mWebView.getSettings().setAppCacheEnabled(true);
    mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
    mWebView.getSettings().setDatabaseEnabled(true);
    mWebView.getSettings().setDatabasePath(
            this.getFilesDir().getPath() + this.getPackageName()
                    + "/databases/");

    // this force use chromeWebClient
    mWebView.getSettings().setSupportMultipleWindows(true);

    mWebView.setWebChromeClient(new WebChromeClient()); //esta linha foi adicionada

    mWebView.loadUrl(url); //esta linha foi movida de lugar

Do not forget to import:

import android.webkit.WebChromeClient;
    
27.06.2017 / 04:13