Javascript Android从SD卡本地加载Webview中的pdf

Javascript Android从SD卡本地加载Webview中的pdf,javascript,java,android,html,webview,Javascript,Java,Android,Html,Webview,我正在尝试将pdf从sd加载到webview。 我知道在webview中直接加载pdf是不可能的。因此,我有一个html文件,它呈现文件并加载pdf 来自的样本 Android代码: final WebView webView = (WebView) findViewById(R.id.magazineWebView); final ProgressBar spinner = (ProgressBar) findViewById(R.id.magazineSpinner);

我正在尝试将pdf从sd加载到webview。 我知道在webview中直接加载pdf是不可能的。因此,我有一个html文件,它呈现文件并加载pdf

来自的样本

Android代码

    final WebView webView = (WebView) findViewById(R.id.magazineWebView);
    final ProgressBar spinner = (ProgressBar) findViewById(R.id.magazineSpinner);

    webView.setBackgroundColor(0xFFFFFFFF);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setSaveFormData(true);
    webView.getSettings().setBuiltInZoomControls(mgznCanZoom);
    webView.getSettings().setDisplayZoomControls(false);
    webView.getSettings().setLoadWithOverviewMode(true);
    webView.getSettings().setUseWideViewPort(true);
    webView.getSettings().setPluginState(WebSettings.PluginState.ON);
    webView.setWebViewClient(new WebViewClient() {
        @Override
        public void onPageFinished(WebView view, String url) {
            spinner.setVisibility(View.GONE);
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    });


String webPath   = "http://mysite/demo/pdf-js/index.htm"; //WORKS       
String file_name2   = "pdf-js/index.htm"; //LOAD HTML BUT NOT PDF

    String file_uri = MAGAZINE_FOLDER + file_name2;
    String sdPath = Uri.parse("file://"
                    + Environment.getExternalStorageDirectory()
                    + file_uri).toString();



    webView.loadUrl(sdPath); //webPath   
logcat中的错误:

但是-> 如果我将此文件存储在云中并按上述方式加载,它将正常工作。 有人知道为什么这不会在本地加载吗? 谢谢各位

我知道网上有很多这样的问题。我环顾四周,没有找到解决办法


我无法使用这样的库

从该路径中删除
文件://
。它应该从/storage开始。此外,你还可以提到必要的协议。请解释数据和chrome。
XMLHttpRequest
。它想使用http。你也需要读取外部存储权限。它将完全脱机。我拥有所有必需的权限。谢谢你当然应该对我的评论做出反应。
I/chromium: [INFO:CONSOLE(0)] "XMLHttpRequest cannot load file:///storage/emulated/0/MyApp/Magazine/pdf-js/compressed.tracemonkey-pldi-09.pdf. Cross origin requests are only supported for protocol schemes: http, data, chrome, https.", source: file:///storage/emulated/0/MyApp/Magazine/pdf-js/index.htm (0)
I/chromium: [INFO:CONSOLE(52)] "Uncaught TypeError: Cannot read property 'Symbol(Symbol.iterator)' of null", source: file:///storage/emulated/0/MyApp/Magazine/pdf-js/lib/pdf.js (52)
I/AppLifecycle: onActivitySaveInstanceState