在Webview中加载pdf的内容

时间:2015-05-28 20:50:56

标签: android pdf webview

我想在WebView中显示pdf文件的内容。

问题: 当我启动WebView新对话框打开时,是否要在浏览器或pdf Viewer中加载pdf。但我想直接在WebView中加载内容。我也尝试使用前缀url来嵌入内容,但随后显示:无法预览。

我的代码:

public class Changelog_View extends ActionBarActivity {

@Override
protected void onCreate ( Bundle savedInstanceState ) {

    super.onCreate(savedInstanceState);



    String myPdfUrl = "https://onedrive.live.com/download?cid=DB700463EBEC6BC9&resid=DB700463EBEC6BC9%2120693&authkey=ALJ-NvyQqMdACpA&em=2";
    String url = "http://docs.google.com/gview?embedded=true&url=" + myPdfUrl;

    WebView webview = new WebView(this);

    webview.getSettings().setJavaScriptEnabled(true);
    webview.loadUrl(url);


    setContentView(webview);
}
}

我现在用android-pdfView库尝试了这段代码:

 @Override
protected void onCreate ( Bundle savedInstanceState ) {

    super.onCreate ( savedInstanceState );

   com.joanzapata.pdfview.PDFView pdfView = new com.joanzapata.pdfview.PDFView ( getApplicationContext (), null );
    String myPdfUrl = "https://onedrive.live.com/download?cid=DB700463EBEC6BC9&resid=DB700463EBEC6BC9%2120693&authkey=ALJ-NvyQqMdACpA&em=2";

    pdfView.fromAsset(myPdfUrl)
            .defaultPage(1)
            .showMinimap(false)
            .enableSwipe(true)
            .onLoad(this)
            .onPageChange ( new OnPageChangeListener () {
                @Override
                public void onPageChanged ( int i, int i1 ) {

                }
            } )
            .load();

但是FileNotFoundException出现在地址:https://onedrive.live.com/download?cid=DB700463EBEC6BC9&resid=DB700463EBEC6BC9%2120693&authkey=ALJ-NvyQqMdACpA&em=2。地址直接指向我的onedrive帐户中的pdf文件。因此,当我在浏览器中输入此链接时,pdf文件正在下载。

那么如何在我的应用程序中使用https://onedrive.live.com/download?cid=DB700463EBEC6BC9&resid=DB700463EBEC6BC9%2120693&authkey=ALJ-NvyQqMdACpA&em=2库显示来自地址的pdf文件:android-pdfView

感谢。

2 个答案:

答案 0 :(得分:1)

要在Webview中打开pdf,最好通过google doc service显示pdf

WebView webView=(WebView)findViewById(R.id.webView);
webView.getSettings().setLoadsImagesAutomatically(true);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
        webView.getSettings().setLoadWithOverviewMode(true);
        webView.getSettings().setUseWideViewPort(true);
        webView.loadUrl("http://drive.google.com/viewerng/viewer?embedded=true&url=" + REPLACE_WITH_YOUR_LINK);

答案 1 :(得分:0)

如果没有WebViewClient,那么它只会在不同的窗口中打开。

mWebView.setWebViewClient(new WebViewClient());