Открытие ссылки .pdf в Webview - PullRequest
1 голос
/ 28 июня 2019

У меня есть простое приложение с веб-просмотром.Каждый раз, когда на странице есть ссылка в формате PDF, после нажатия на нее ничего не происходит.В настоящее время я задыхаюсь с PDF-ссылками, они не открываются, несмотря ни на что.Я пробовал некоторые решения, но они просто устарели.

Вот мой код:

package com.example.bla;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;



import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

public class MainActivity extends AppCompatActivity {

    private WebView webView = null;


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

        webView=findViewById(R.id.webviewid);
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
        webSettings.setDomStorageEnabled(true);
        webSettings.setPluginState(WebSettings.PluginState.ON);
        webSettings.setAllowFileAccess(true);
        webSettings.setLoadWithOverviewMode(true);
        webSettings.setUseWideViewPort(true);
        webSettings.setAllowUniversalAccessFromFileURLs(true);

        webView.setWebViewClient(new WebViewClient());
        webView.loadUrl("https://blabla.com");

    }


    public void onBackPressed() {
        if (webView.canGoBack()) {
            webView.goBack();
        } else {
            super.onBackPressed();
        }
    }

    }

Не могли бы вы помочь мне с решением?

Ответы [ 2 ]

0 голосов
/ 28 июня 2019

Когда вы нажимаете ссылку на .PDF, веб-просмотр попытается загрузить файл.Что вы действительно хотите сделать, это открыть файл в сеансе внешнего браузера.Это покажет PDF, а также даст вам возможность скачать его, если хотите.Для этого сначала установите прослушиватель загрузки для своего веб-просмотра.

    //for download PDF files
    webView.setDownloadListener(new MyDownLoadListener());

Затем, в прослушивателе загрузки, отправьте ссылку PDF в сеанс внешнего браузера:

public class MyDownLoadListener implements DownloadListener {
    @Override
    public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {

    if (url != null) {
        Intent i = new Intent(Intent.ACTION_VIEW);
        i.setData(Uri.parse(url));
        startActivity(i);
    }

}
0 голосов
/ 28 июня 2019

Попробуйте открыть его через сервис Google Doc:

WebView webView = (WebView) context.findViewById(R.id.webView1);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.loadUrl("http://docs.google.com/gview? 
embedded=true&url=yourUrl");

Подробнее

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