2

我有带有本地 pdf 文件链接的 html 页面。我想在没有活动互联网连接的情况下在浏览器(chrome、opera、dolphin)中打开这个 pdf 文件。你知道插件,可以在浏览器或方法或其他东西中打开 pdf 文件(无需下载)吗?

4

3 回答 3

2

不幸的是,Android 设备上的本机浏览器不支持这种类型的文件。让我们看看在 4.0+ 中我们是否能够做到这一点。

于 2013-10-01T08:40:52.867 回答
2

我曾经使用过的一个解决方案是使用 Google Docs 打开它们。

_webView.loadUrl("https://docs.google.com/gview?embedded=true&url="+ url);
于 2013-10-01T07:43:51.813 回答
1

使用以下代码:

CustomWebView webView = (CustomWebView) rootView.findViewById(R.id.webView);
webView.loadUrl("https://docs.google.com/gview?embedded=true&url=" + yourUrl);

制作 CustomWebView 类如下:

public class CustomWebView extends WebView {
    private Context context;

    private ProgressDialog progressDialog;

    public CustomWebView(Context context) {
        super(context);
        this.context = context;
        init();
    }

    public CustomWebView(Context context, AttributeSet attrs) {
        super(context, attrs);
        this.context = context;
        init();
    }

    public CustomWebView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        this.context = context;
        init();
    }

    private void init() {
        setWebSetting();
    }

    private void setWebSetting() {
        WebSettings webSettings = getSettings();
        webSettings.setJavaScriptEnabled(true);
        webSettings.setPluginsEnabled(true);
        webSettings.setBuiltInZoomControls(true);
        webSettings.setRenderPriority(WebSettings.RenderPriority.HIGH);
        webSettings.setLightTouchEnabled(false);
        setScrollBarStyle(SCROLLBARS_OUTSIDE_OVERLAY);
        setWebViewClient(new CustomWebViewClient());
    }

    class CustomWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            return false;
        }

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
            progressDialog = ProgressDialog.show(context, null,
                    context.getString(R.string.msg_please_wait));
            progressDialog.setCancelable(false);
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            progressDialog.dismiss();
        }
    }
}
于 2013-10-01T07:46:31.627 回答