在webview中打开Firebase存储pdf网址

时间:2017-12-14 10:07:42

标签: java android pdf webview firebase-storage

我已将pdf文件上传到firebase存储,在将pdf文件上传到firebase存储后,我收到了下载网址。现在我想在我的android应用程序中打开webview中的pdf文件。

以下是我将pdf文件上传到firebase存储后的网址。

https://firebasestorage.googleapis.com/v0/b/onecoach-256129.appspot.com/o/admin%2F1513215604514.pdf?alt=media&token=059d1d8a-6ee9-42df-9b08-3e126e192d10

以下是我在webview中打开pdf的方法

private void loadWebUrl(String url) {
    myWebView.setBackgroundColor(Color.TRANSPARENT);
    myWebView.getSettings().setJavaScriptEnabled(true);
    settings.setAllowFileAccessFromFileURLs(true);
    settings.setAllowUniversalAccessFromFileURLs(true);
    settings.setBuiltInZoomControls(true);
    //url = "http://narsun.pk/profile.pdf";
    if (url!=null&&!url.isEmpty()) {
        myWebView.loadUrl("https://docs.google.com/viewerng/viewer?url="+url);
        //myWebView.loadUrl("http://drive.google.com/viewerng/viewer?embedded=true&url="+url);
    }else {
        Utils.showToast(mActivity,"Sorry No Pdf url Exist!");
        mActivity.onBackPressed();
    }
}

请帮助我,我错了!感谢

2 个答案:

答案 0 :(得分:3)

迟到但您应该对您的网址进行编码,

try {
    url=URLEncoder.encode(url,"UTF-8");
    myWebView.loadUrl("https://docs.google.com/gview?embedded=true&url="+url);
} catch (UnsupportedEncodingException e) {
    e.printStackTrace();
}

答案 1 :(得分:0)

我认为您将文件上传到 firebase 时的问题,您应该添加上传文件的元数据 在您的情况下,您应该定义 StorageMetadata 并设置“application/pdf”的 contentType

此代码来自 iOS 应用

FIRStorageMetadata* metadata = [[FIRStorageMetadata alloc] init];
metadata.contentType = @"application/pdf";

然后当您将数据放入 firebase 时,在上传功能中添加此元数据