在webview中打开Firebase存储PDF链接

3

我已将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个回答

5

虽然晚了些,但你应该对URL进行编码。

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

1
你能详细说明这将如何有所帮助吗?OP提供的URL https://firebasestorage.googleapis.com/v0/b/onecoach-256129.appspot.com/o/admin%2F1513215604514.pdf?alt=media&token=059d1d8a-6ee9-42df-9b08-3e126e192d10 似乎已经被编码。 - Piro

0

我认为你上传文件到Firebase时遇到的问题是,你应该添加上传文件的元数据。在你的情况下,你应该定义StorageMetadata并设置contentType为"application/pdf"。

这段代码来自iOS应用程序。

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

然后,当您将数据放入Firebase时,请在上传函数中添加此元数据


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接