如何从我的本地设备在 webView 上读取 pdf 文件

Posted

技术标签:

【中文标题】如何从我的本地设备在 webView 上读取 pdf 文件【英文标题】:How to read pdf file on webView From my Local device 【发布时间】:2015-03-20 12:30:48 【问题描述】:

我有两种读法 第一个:Pdf 从 url OnWebView 读取:它的工作 第二:Pdf 从本地路径读取 OnWebView:dosent working

(/data/data/com.akfix.navigationdrawer/files/550192f3a1583.pdf)

第二张图表不工作。而且我没有任何错误日志。我在做什么,

这里是我的 Pdf 阅读器课程;

public class PdfReader extends Activity 
String pdf;

@Override
protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pdf_reader);
    WebView webview = (WebView) findViewById(R.id.webView3);
    Bundle extras = getIntent().getExtras();
    if (extras != null) 
        pdf = extras.getString("pdfUrl");
        if (extras.getString("catalogPdfUrl") != null) 
            String pdfPath = extras.getString("catalogPdfUrl");

            Uri path = Uri.parse(pdfPath);
            viewPdf(path);

         else 
            webview.getSettings().setjavascriptEnabled(true);

            pdf.replaceAll("\"", "");
            webview.loadUrl("http://docs.google.com/gview?embedded=true&url=" + pdf);
        
    




private void viewPdf(Uri file) 
    Intent intent;
    intent = new Intent(Intent.ACTION_VIEW);
    intent.setDataAndType(file, "application/pdf");
    try 
        startActivity(intent);
     catch (ActivityNotFoundException e) 

        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("No Application Found");
        builder.setMessage("Download one from android Market?");
        builder.setPositiveButton("Yes, Please",
                new DialogInterface.OnClickListener() 
                    @Override
                    public void onClick(DialogInterface dialog, int which) 
                        Intent marketIntent = new Intent(Intent.ACTION_VIEW);
                        marketIntent
                                .setData(Uri
                                        .parse("market://details?id=com.adobe.reader"));
                        startActivity(marketIntent);
                    
                );
        builder.setNegativeButton("No, Thanks", null);
        builder.create().show();
    

请帮帮我。

【问题讨论】:

既然是本地的,为什么需要在webview中显示呢? 因为我的老板很旺 :) github.com/JoanZapata/android-pdfview ,我在我的应用程序中使用过这个库,简直太棒了@user3003883 如果对你有帮助,请在下方接受我的回答 【参考方案1】:

既然是本地的,为什么需要在 webview 中显示呢?

我在我的应用程序中使用了this library,简直太棒了

加载 PDF 文件

pdfView.fromAsset(pdfName)
.pages(0, 2, 1, 3, 3, 3)
.defaultPage(1)
.showMinimap(false)
.enableSwipe(true)
.onDraw(onDrawListener)
.onLoad(onLoadCompleteListener)
.onPageChange(onPageChangeListener)
.load();

【讨论】:

以上是关于如何从我的本地设备在 webView 上读取 pdf 文件的主要内容,如果未能解决你的问题,请参考以下文章

当设备在 react-native 中离线时,在 webview 中显示本地图像

如何从我的物理 Android 设备访问我的本地主机?

无法从我的网络服务器读取本地服务器上的 json 文件

如何从我的 Android 设备访问我的本地主机

如何从我的 android 设备访问我的本地 REST api?

如何从我的设备中选择文件? [关闭]