当前位置: 首页 > 知识库问答 >
问题:

在Webview中加载pdf的内容

娄森
2023-03-14

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

问题:当我启动webview时,一个新的对话框正在打开,不管我是想在浏览器中还是在pdf查看器中加载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();

但随后会在以下地址出现一个FileNotFoundExceptionhttps://onedrive.live.com/download?cid=db700463ebec6bc9&resid=db700463ebec6bc9%2120693&authkey=alj-nvyqqmdacpa&em=2。adress直接引用了我onedrive帐户中的pdf文件。所以当我在浏览器中输入这个链接时,pdf文件正在下载。

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

多谢了。

共有1个答案

仲孙德惠
2023-03-14

要在Webview中打开pdf,最好通过google doc服务显示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);
 类似资料:
  • 任何帮助都将不胜感激。

  • 在打开WebView中的地址之前,我需要制作一个加载条。它是空白的,不能与这里找到的主题。您需要在打开前加载。 对不起我的英语。 } 我有一个飞溅之前...但我没有得到所有的白色如果页面还没有收费。我想显示一批货,然后只有当你是100%装载,显示页面。谢谢

  • 然后它说没有预览可用。谁能告诉我这里出了什么问题。

  • 我已经在Eclipse SWT应用程序中嵌入了JavaFX的WebView,需要加载html内容。我需要阻止当前线程的执行,直到webengine加载完内容。任何熟悉这种情况并能给出一些提示和/或最佳实践来实现这一点的人?SWT和JavaFX似乎都在同一个UI线程中运行。 谢谢

  • 我试图用WebView制作一个应用程序,但是网站使用的是,但是内容(例如mp3文件)使用的是,所以Android Lollipop不会加载它,因为它是“混合内容”。我尝试使用,但它没有加载任何内容。有办法修好吗?或者我可以让所有加载的网站都使用,这样就不会显示任何错误了?

  • 我有这个密码。 我正在加载这个url