【问题标题】:Cant load Webview containing PDF documents, flash files converted into HTML5 android无法加载包含 PDF 文档的 Webview,Flash 文件转换为 HTML5 android
【发布时间】:2012-06-02 11:10:32
【问题描述】:

我试图在 webview 中显示 PDF 文件。我试图通过 HTML5 加载 PDF。 这是我的源代码:

WebView 网络视图;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    webview = (WebView) findViewById(R.id.webview);
    webview.getSettings().setJavaScriptEnabled(true);
    webview.setWebViewClient(new HelloWebViewClient()); 
    webview.loadUrl("file:///android_asset/www/test.pdf");
    WebSettings settings = webview.getSettings();
    settings.setJavaScriptEnabled(true);
    settings.setDatabaseEnabled(true);
    String databasePath = this.getApplicationContext()
            .getDir("database", Context.MODE_PRIVATE).getPath();
    settings.setDatabasePath(databasePath);
    webview.setWebChromeClient(new WebChromeClient());
}

private class HelloWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
}

我们将不胜感激任何帮助。 提前致谢。

【问题讨论】:

标签: android


【解决方案1】:

Webview 在 android 中不支持 PDF。

你需要使用谷歌文档。

所以你不能从资产文件夹的 webview 中加载 PDF。

将您的 pdf 放入服务器

使用一些库来阅读 pdf,例如 mupdf

我也遇到过这个问题see this Question

或者您可以使用 Intent。ACTION_VIEW

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(filepath, "application/pdf");
startActivity(intent);

【讨论】:

    【解决方案2】:

    尝试在您的 WebView 对象中启用插件,例如

    mWebView.getSettings().setPluginsEnabled(true);
    

    Android - Load PDF / PDF Viewer 可能重复

    【讨论】:

      【解决方案3】:

      试试这个代码::Refer this

      public class MyPdfViewActivity extends Activity {
      
        @Override
        protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          WebView mWebView=new WebView(MyPdfViewActivity.this);
          mWebView.getSettings().setJavaScriptEnabled(true);
          mWebView.getSettings().setPluginsEnabled(true);
          mWebView.loadUrl("file:///android_asset/www/test.pdf");
          setContentView(mWebView);
        }
      }
      

      更新::

      Uri path = Uri.fromFile(new File("assets/www/test.pdf"); 
      Intent intent = new Intent(Intent.ACTION_VIEW); 
      intent.setDataAndType(path, "application/pdf"); 
      intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      startActivity(intent); 
      

      【讨论】:

      • 试过了,但它只是显示空白屏幕。不工作。
      • @Agarwal Shankar 先检查你的答案,因为 webview 不能直接支持 pdf 文件,我们必须使用 google docs。但是 OP 在资产文件夹中有 pdf?
      • @Agarwal。感谢您的回答。你的权利。 WebView 不支持 pdf 文件。但我不想使用谷歌文档,有没有其他方法可以显示 pdf 文件。因为我不想依赖第三方。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-24
      • 2011-04-30
      • 1970-01-01
      • 2022-01-21
      相关资源
      最近更新 更多