Mozilla PDF在三星设备上速度极慢

时间:2015-05-16 17:08:42

标签: android pdf webview mozilla

我有一个应用程序,我使用Mozilla PDF查看PDF。

Mozilla PDF使用网页视图加载PDF。

PDF文件很大,实际上都是图像。

该应用程序运行正常,但PDF在所有三星设备上加载速度极慢。该应用程序在其他设备上运行良好,但在三星上这么慢,它真的没用。

我对网络视图有以下设置:

    settings.setJavaScriptEnabled(true);
    settings.setRenderPriority(RenderPriority.HIGH);
    settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
    webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

我也设置了一个WebChromeClient。

有谁知道我为什么要面对这个问题?仅在三星设备上? 任何解决方法?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

以下是使用PDF.js显示PDF的API 19设置。它适用于所有设备(至少运行 webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setUseWideViewPort(true); webView.getSettings().setLoadWithOverviewMode(true); webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); webView.getSettings().setSupportMultipleWindows(true); webView.getSettings().setLoadsImagesAutomatically(true); webView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH); webView.getSettings().setPluginState(WebSettings.PluginState.ON); webView.getSettings().setPluginState(WebSettings.PluginState.ON_DEMAND); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { webView.getSettings().setAllowFileAccessFromFileURLs(true); } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { webView.getSettings().setMediaPlaybackRequiresUserGesture(true); } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { webView.getSettings().setAllowUniversalAccessFromFileURLs(true); } webView.getSettings().setAllowFileAccess(true); webView.getSettings().setAllowContentAccess(true); webView.getSettings().setDomStorageEnabled(true); webView.setWebViewClient(new WebViewClient()); webView.setWebChromeClient(new WebChromeClient()); // should enable pinch to zoom.... webView.getSettings().setSupportZoom(true); webView.getSettings().setBuiltInZoomControls(true); webView.getSettings().setDisplayZoomControls(false); String webViewUrl; try { /* Try encoding the PDF file URL. I think i’ve read that this helps with load/rendering speed? */ webViewUrl = "file:///android_asset/pdfjs/web/viewer.html?file=" + URLEncoder .encode(pdfUri.toString(), "UTF-8"); } catch (UnsupportedEncodingException e) { // It works without encoding it (at least in my case) so just display it with the string as is. Log.e("Error encoding PDF file URL, will display without encoding.", e); webViewUrl = "file:///android_asset/pdfjs/web/viewer.html?file=" + pdfUri.toString(); } webView.loadUrl(webViewUrl); ),包括旧的小型三星产品。

WebView

不确定这是否会有所帮助,但我认为我会发布完整的API 14设置以支持PDF.js,我从未遇到过速度问题。祝你好运。

注意:在应用程序的清单中打开硬件加速也可能是个好主意。这仅适用于<application android:name="com.pdfjs.webview.app.McAwesome" //... android:hardwareAccelerated="true"> </application> 及更高版本。到现在为止,这不应成为一个问题(如果是的话,我的心向你发出)。

{{1}}