【问题标题】:Viewing Firebase storage pdf file in webview在 webview 中查看 Firebase 存储 pdf 文件
【发布时间】:2018-12-21 15:25:47
【问题描述】:

我正在尝试使用 web 视图显示保存在 Firebase 存储中的 PDF 文件。但是我收到的视图是空白的,只有顶部是灰色的。

public class PerformanceFragment extends Fragment {

    private WebView webView;
    private String postUrl = "https://firebasestorage.googleapis.com/v0/b/sas-android-73b28.appspot.com/o/sequence.pdf?alt=media&token=9fc1de4e-1059-4b2b-865e-1c44453a7eb8";



    public PerformanceFragment() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View root = inflater.inflate(R.layout.fragment_performance, container, false);


        webView =  root.findViewById(R.id.webView);

        webView.getSettings().setJavaScriptEnabled(true);

        webView.loadUrl("http://drive.google.com/viewerng/viewer?embedded=true&url=" + postUrl);

        webView.setHorizontalScrollBarEnabled(false);

        webView.setWebChromeClient(new WebChromeClient() {
            public void onProgressChanged(WebView view, int progress)
            {
                getActivity().setTitle("Loading...");
                getActivity().setProgress(progress * 100);

                if(progress == 100)
                    getActivity().setTitle(R.string.app_name);
            }
        });


            return root;
    }


}

fragment_performance.xml

<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".PerformanceFragment">


    <WebView
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"

        />

</android.support.v4.widget.NestedScrollView>

我已通过身份验证,但没有显示任何其他内容。屏幕截图如下:1

任何帮助将不胜感激。谢谢。

【问题讨论】:

标签: java android firebase-storage


【解决方案1】:
 final ProgressDialog pDialog = new ProgressDialog(getActivity());
    pDialog.setTitle("Course PDF");
    pDialog.setMessage("Loading...");
    pDialog.setIndeterminate(false);
    pDialog.setCancelable(false);

    webView=view.findViewById(R.id.pdfviewr);
    webView.getSettings().setJavaScriptEnabled(true);

    webView.setWebViewClient(new WebViewClient() {
        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
            pDialog.show();
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            pDialog.dismiss();
        }
    });
    String url="";
    String pdf = "https://firebasestorage.googleapis.com/v0/b/mindlabz-6f809.appspot.com/o/course_content%2FCracking%20the%20Coding%20Interview.pdf?alt=media&token=12a7fb3d-92d8-49f6-bd13-f88ec634c06c";
    try {
        url=URLEncoder.encode(pdf,"UTF-8");
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }
    webView.loadUrl("http://drive.google.com/viewerng/viewer?embedded=true&url="+url);
    return view;
}

试试这段代码

URL 转换为 UTF-8 并且它也可以从 firebase 加载。

【讨论】:

    【解决方案2】:

    试试这个:-

    WebView wv = root.findViewById(R.id.webView);
    wv.getSettings().setJavaScriptEnabled(true);
    wv.getSettings().setLoadWithOverviewMode(true);
    wv.getSettings().setUseWideViewPort(true);
    wv.loadUrl("http://drive.google.com/viewerng/viewer?embedded=true&url=" + postUrl);
    

    您可以使用显示进度条,因为加载 pdf 可能需要一些时间。

    【讨论】:

    • 不,仍然没有。没有连接,它显示正确的错误,但连接不是来自 url 的内容。
    • I/chromium: [INFO:CONSOLE(88)] "Uncaught CustomError: Did not receive drive#about kind when fetching import map:undefined",来源:gstatic.com/_/apps-viewer/_/js/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多