我可以使用以下代码
下载和查看以* .pdf结尾的网址public function __construct()
{
$this->redirectTo = url()->previous();
$this->middleware('guest', ['except' => 'logout']);
}
但是我试图下载PDF文件,其中url以.aspx结尾,因为它动态生成PDF并且无效。
我还尝试使用google doc url“http://docs.google.com/viewer?url=”+网址嵌入webview,但它也无效。
有人可以提供帮助吗?
答案 0 :(得分:0)
'。aspx'ASP.NET页面实际上是网络表单。
网页表单包含在扩展名为“.aspx”的文件中;这些文件 通常包含静态(X)HTML标记或组件标记。
因此,您要加载的是在服务器端呈现的简单HTML
页面。因此,您无法使用它在PDF查看器中查看PDF
。
不是从文件中打开'.aspx'而是将此网址加载到WebView
- 只有在您指向的网站上没有其他安全措施时,这才有效。
如果是Google文档,您提供给WebView
的链接应该分享以下链接:
https://drive.google.com/file/d/xx-xxxxxxxxxxxxxxx/view?usp=sharing
其中x
是散列的一部分。要获取此链接,请点击文档的Share
选项,然后点击get shareable link
。
在WebView
到达pdf文档之前,它可能会收到一些可能由Android本身处理的重定向。为避免这种情况,您需要覆盖WebViewClient#shouldOverrideUrlLoading
,如下例所示:
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return false;
}
});
mWebView.loadUrl("https://drive.google.com/file/d/xx-xxxxxxxxxxxxxxx/view?usp=sharing");
此外,您可以使用上面提到的可共享网址直接链接到该文件:
change this:
https://drive.google.com/file/d/xx-xxxxxxxxxxxxxxx/view?usp=sharing
to this:
https://drive.google.com/uc?export=download&id=xx-xxxxxxxxxxxxxxx
or to this:
https://docs.google.com/document/d/xx-xxxxxxxxxxxxxxx/export?format=pdf