Проблема в приложении веб-просмотра - PullRequest
0 голосов
/ 18 июня 2020

Я создал веб-приложение в php, и я использую html5 плееры, которые поддерживают видео YouTube, а также «mediaelement and player», «plyr» и c, которые отлично работают в браузере, но когда я Создал веб-просмотр apk-видео не может воспроизвести вот мой код веб-просмотра

package com.subodhchem.subodhchem;

import androidx.appcompat.app.AppCompatActivity;

import android.app.DownloadManager;
import android.content.Context;
import android.graphics.Bitmap;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.os.Bundle;
import android.webkit.DownloadListener;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    private WebView mywebView;

    //Progressbar
    private ProgressBar mProgressBar;
    //Progressbar
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
//        checkConnection();
        ConnectivityManager manager = (ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetwork = manager.getActiveNetworkInfo();
        if(null == activeNetwork){
            Toast.makeText(MainActivity.this, "No Internet Connection", Toast.LENGTH_SHORT).show();

        }else {
            mywebView = (WebView) findViewById(R.id.webview);
            //Progressbar
            mProgressBar = findViewById(R.id.progressBar);
            mProgressBar.setMax(100);
            //Progressbar

            WebSettings webSettings = mywebView.getSettings();
            webSettings.setJavaScriptEnabled(true);
//New Line
            webSettings.setDomStorageEnabled(true);
            webSettings.setLoadWithOverviewMode(true);
            webSettings.setUseWideViewPort(true);
            webSettings.setBuiltInZoomControls(true);
            webSettings.setDisplayZoomControls(false);
            webSettings.setSupportZoom(true);
            webSettings.setDefaultTextEncodingName("utf-8");

            mywebView.setWebViewClient(new WebViewClient() {
                //Progressbar
                @Override
                public void onPageStarted(WebView view, String url, Bitmap favicon) {
                    super.onPageStarted(view, url, favicon);
                    mProgressBar.setVisibility(view.VISIBLE);
                    setTitle("Loading...");
                }

                @Override
                public void onPageFinished(WebView view, String url) {
                    super.onPageFinished(view, url);
                    mProgressBar.setVisibility(view.GONE);
                    setTitle(view.getTitle());
                }
                //Progressbar
                @Override
                public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                    super.onReceivedError(view, errorCode, description, failingUrl);
                    view.loadUrl("about:blank");
                    Toast.makeText(MainActivity.this, "Network Error.", Toast.LENGTH_SHORT).show();
                }
            });

            mywebView.loadUrl("https://myurl/sub/app");
            mywebView.setWebChromeClient(new WebChromeClient());
            mywebView.setDownloadListener(new DownloadListener() {
                @Override
                public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {
                    DownloadManager.Request myRequest = new DownloadManager.Request(Uri.parse(url));
                    myRequest.allowScanningByMediaScanner();
                    myRequest.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
                    DownloadManager myManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
                    myManager.enqueue(myRequest);
                    Toast.makeText(MainActivity.this, "Your File Is Downloading...", Toast.LENGTH_SHORT).show();
                }
            });

        }
    }
    public class myWebClient extends WebViewClient{
        @Override
        public void onPageStarted (WebView view, String url, Bitmap favicon){
            super.onPageStarted(view,url,favicon);
        }
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url){
            view.loadUrl(url);
            return true;
        }
    }
    @Override
    public void onBackPressed(){
        if(mywebView.canGoBack()) {
            mywebView.goBack();
        }
        else{
            super.onBackPressed();
        }
    }
}

код веб-приложения отлично работает в браузере, но в приложении веб-просмотра он не работает. Пробовал. У всех 2-3 игроков такая же проблема. Обычный html5 плеер со ссылкой на видео mp4 работает нормально, но через URL-адрес YouTube он не работает в веб-просмотре. Мне не нужен обычный тег iframe для YouTube, потому что он поставляется с функциями YouTube, которые также перенаправляются на YouTube. Я упоминал выше, что эти параметры не доступны для кликов, что идеально для меня

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...