При попытке открыть онлайн-файл PDF в веб-обозрении у меня нет сообщения для предварительного просмотра. - PullRequest
0 голосов
/ 12 октября 2018

мой код похож на этот WebView.);// следующие строки показывают загрузчик, загружающий файл PDF для просмотра.webview.setWebViewClient (новый WebViewClient () {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url)
        {
            progDailog.show();
            view.loadUrl(url);

            return true;
        }

        @Override
        public void onPageFinished(WebView view, final String url)
        {
            progDailog.dismiss();
        }
    });
    try {
        String urlEncoded = URLEncoder.encode(pdf, "UTF-8");
        pdf = "http://docs.google.com/viewer?url=" + urlEncoded;
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }
   String pdf = "http://192.168.2.154:8080/streamline/res/INV-000015.pdf";
    webview.loadUrl("http://drive.google.com/viewerng/viewer?embedded=true&url=" + pdf);

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019

Это сработало для меня ... Что я сделал, так это то, что я разобрал URL-адрес как Uri, прежде чем объединить его с URL-адресом, и все заработало.Ниже мой код:

// sets visibility to visible
progressBar.setVisibility(View.VISIBLE);


// displaying document in webview
String url = Uri.encode(fileUrl);


document_viewer.getSettings().setJavaScriptEnabled(true);
document_viewer.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);
document_viewer.getSettings().setBuiltInZoomControls(true);
document_viewer.getSettings().setUseWideViewPort(true);
//document_viewer.getSettings().setPluginState(WebSettings.PluginState.ON);
// loads documentUrl into webView
document_viewer.loadUrl("http://docs.google.com/gview?embedded=true&url="+url);

document_viewer.setWebViewClient(new WebViewClient() {

    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {

        super.onPageStarted(view, url, favicon);
        // sets visibility to visible
        progressBar.setVisibility(View.VISIBLE);

    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return false;
    }
    @Override
    public void onPageFinished(WebView view, String url) {
        // do your stuff here
        // sets visibility of progressBar to gone
        progressBar.setVisibility(View.GONE);

        // sets visibility of webView to visible
        document_viewer.setVisibility(View.VISIBLE);

        // setting the details of document on text Views
        title.setText(" Title : " + documentTitle);
        tag.setText(" Tag : " + documentTag);
        type.setText(" Type : " + documentType);
        comment.setText(" Comment : " + documentComment);
        distributee.setText(" Distributee : "  + documentDistributee);
    }

    @Override
    public void onReceivedError(WebView view, int errorCode,
                                String description, String failingUrl) {
        view.loadUrl("about:blank");
        Toast.makeText(getApplicationContext(), getResources().getString(R.string.error_occurred), Toast.LENGTH_LONG).show();
        super.onReceivedError(view, errorCode, description, failingUrl);
    }

});

Надеюсь, это поможет.Спасибо

0 голосов
/ 12 октября 2018

192.168.2.154 - это машина в вашей локальной сети.docs.google.com не может получить к нему доступ.docs.google.com может получить доступ только к общедоступным URL-адресам на общедоступных IP-адресах.

Возможно, вы могли бы рассмотреть другие варианты просмотра PDF-файлов .

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