在应用程序中打开资产文件 pdf

Posted

技术标签:

【中文标题】在应用程序中打开资产文件 pdf【英文标题】:Open asset file pdf in application 【发布时间】:2011-04-21 12:02:27 【问题描述】:

我已经搜索过了,但没有找到在应用程序中显示 pdf 文件的任何解决方案

关键是我必须显示来自资产或原始文件夹的 pdf,而不是来自网络

我已经用代码在 webview 中尝试过

    WebView webview = (WebView) findViewById(R.id.webview);
    webview.getSettings().setjavascriptEnabled(true);
    webview.setContentDescription("application/pdf");
    webview.loadUrl("file:///android_asset/button11.pdf");

但它没有醒来。

我需要这方面的帮助 提前致谢

【问题讨论】:

【参考方案1】:

这是我用来从文件系统读取 pdf 的代码,希望对您有所帮助!

        File file = new File("/path/to/file");          
        Uri path = Uri.fromFile(file);      
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType(path, "application/pdf");
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

        try 
             context.startActivity(intent);
             
         catch (ActivityNotFoundException e) 
             Toast.makeText(context, "No application available to view PDF", Toast.LENGTH_LONG).show();
            

【讨论】:

【参考方案2】:

您不能只使用 file:///android_asset/button11.pdf 来访问文件。 它不是文件系统路径。即使您获取文件的真实路径,webview也不会显示您的pdf。

这里是解决方案。 https://***.com/a/10981194/1635488

【讨论】:

【参考方案3】:

您可以使用 Mozilla 的 pdf.js 在 Android 应用程序内的 web 视图中显示 PDF。 这是解决方案。

https://***.com/a/21383356/2260073

【讨论】:

以上是关于在应用程序中打开资产文件 pdf的主要内容,如果未能解决你的问题,请参考以下文章

如何在 android 中阅读和查看 PDF?

在android studio中使用上一个和下一个按钮打开不同的pdf文件?

如何通过 Intent 从 SD 卡打开 PDF

从颤振资产加载 .pdf 文件/自定义文件

Flutter:未处理的异常:无法加载资产

Xcode 11 PDF 图像资产“保留矢量数据”在 SwiftUI 中不起作用?