Загрузить данные JavaScript в веб-студии Android - PullRequest
0 голосов
/ 22 октября 2018

У меня есть приложение в Android Studio с веб-просмотром, которое показывает страницу, на которой создается PDF-файл.Файл PDF генерируется с помощью html2pdf, вывод метода связан с действием кнопки «Отправить».Когда я пытаюсь загрузить сгенерированный файл, ничего не происходит, как будто я не загружаю код JavaScript.У меня есть все разрешения, назначенные для загрузки файлов в рамках веб-просмотра, загрузки работают отлично, но в этом случае, когда создается PDF, он не работает.Если я тестирую в браузере, таком как Google Chrome, PDF генерируется успешно.Надеюсь, вы можете помочь мне, спасибо заранее.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_web_view);

    getSupportActionBar().hide();

    swipe = (SwipeRefreshLayout) findViewById(R.id.swipe);
    swipe.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
        @Override
        public void onRefresh() {

            LoadWeb();
            webView.reload();
        }
    });

    LoadWeb();



}



public void LoadWeb(){

    webView = (WebView)findViewById(R.id.pagina);
    webSettings = webView.getSettings();
    webSettings.setAppCacheEnabled(true);
    webSettings.setSupportZoom(true);
    webSettings.setBuiltInZoomControls(true);
    webSettings.setDefaultZoom(WebSettings.ZoomDensity.FAR);
    webSettings.setJavaScriptEnabled(true);
    webSettings.setLoadWithOverviewMode(true);
    webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    webView.getSettings().setDomStorageEnabled(true);
    webView.getSettings().setAllowFileAccess( true );
    webView.getSettings().setAppCacheEnabled( true );
    webView.getSettings().setAllowContentAccess(true);
    webView.getSettings().setCacheMode( WebSettings.LOAD_DEFAULT ); // load online by default
    webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);

    swipe.setRefreshing(true);



    webView.setWebChromeClient(new ChromeClient());
    if (Build.VERSION.SDK_INT >= 23) {
        webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
    }
    else if(Build.VERSION.SDK_INT >=11 && Build.VERSION.SDK_INT < 23) {
        webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
    }
    Intent intent = getIntent();
    String Link = intent.getStringExtra(Suscripcion.EXTRA_MESSAGE);
    webView.loadUrl(Link);

    webView.setWebViewClient(new WebViewClient(){
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {

            webView.loadUrl("file:///android_asset/error.html");
        }

        public  void  onPageFinished(WebView view, String url){

            //Hide the SwipeReefreshLayout

            swipe.setRefreshing(false);
        }

    });
    webView.setDownloadListener(new DownloadListener()
    {

        @Override
        public void onDownloadStart(String url, String userAgent,
                                    String contentDisposition, String mimeType,
                                    long contentLength) {
            if(verifyPermissions(PaginaOficial.this)){
                DownloadManager.Request request = new DownloadManager.Request(
                        Uri.parse(url));
                request.setMimeType(mimeType);
                String cookies = CookieManager.getInstance().getCookie(url);
                request.addRequestHeader("cookie", cookies);
                request.addRequestHeader("User-Agent", userAgent);
                request.setDescription("Descargando archivo Por Favor Espere...");
                request.setTitle(URLUtil.guessFileName(url, contentDisposition,
                        mimeType));
                request.allowScanningByMediaScanner(); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
                request.setDestinationInExternalPublicDir(
                        Environment.DIRECTORY_DOWNLOADS, URLUtil.guessFileName(
                                url, contentDisposition, mimeType));
                DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
                dm.enqueue(request);
                Toast.makeText(getApplicationContext(), "Descargando archivo Por Favor Espere...",
                        Toast.LENGTH_LONG).show();
            }else{
            }

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