从Webview下载的文件在android中不起作用,我正在尝试这种方式,

时间:2017-03-31 12:29:12

标签: android webview android-download-manager

以下是我实施网页视图的代码,该视图打开一个链接,其中包含有关日期选择的表格信息 并在底部有三个按钮,用于下载pdf,xls和doc文件 下载在浏览器中运行良好但在webview下载中没有发生!

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<li id="step1_li">
 <a>1</a>
 <a>2</a>
 <a>3</a>
</li>

1 个答案:

答案 0 :(得分:2)

根据聊天中的评论和讨论。

我注意到shouldOverrideUrlLoading没有被调用。因为,根据Android文档 shouldOverrideUrlLoading

  

让主机应用程序有机会在新的时候接管控件   url即将加载到当前WebView

但在您的情况下,因为点击任意三个链接时,WebView地址栏中的网址不会更改。它只调用javascript代码javascript:__doPostBack('lnkPDF',''),它调用post方法生成文件。如果您希望在通知区域中显示通知时使用DownloadManager下载文件,则需要为http://或https://等文件创建动态静态URL。例如。 http://www.somedomain/may_be_session_id/some_random_file_number_valid_for_some_time_only/file_name.pdf

除了上述内容之外,让网页更改或重定向到新网址,只有这样您才能在shouldOverrideUrlLoading中捕获网址。

如果主机应用程序想要保留当前shouldOverrideUrlLoading并处理URL本身,请尝试将WebView中的return实现更改为True,否则返回false。