Android WebView downloadlistener не запускается при попытке загрузить динамические файлы в JSF

Я пытаюсь запустить событие DownloadListener в Android-приложении Android, когда я нажимаю кнопку загрузки на странице JSF, эти ссылки загружаются динамически. Он отлично работает в Google Chrome, но он не работает в WebView, и я не мог понять это.

Мне просто нужно, чтобы это событие было запущено при нажатии кнопки. Вы можете мне помочь?

Скачать:

public void download(Download obj) throws IOException { byte[] download = .... // obj byte[] loaded here FacesContext context = FacesContext.getCurrentInstance(); HttpServletResponse response = (HttpServletResponse) context .getExternalContext().getResponse(); response.reset(); response.setBufferSize(DEFAULT_BUFFER_SIZE); response.setContentType("application/octet-stream"); response.setHeader("Content-Length", String.valueOf(download.length)); response.setHeader("Content-Disposition", "attachment;filename=\"download\""); BufferedInputStream input = null; BufferedOutputStream output = null; try { input = new BufferedInputStream(new ByteArrayInputStream(download), DEFAULT_BUFFER_SIZE); output = new BufferedOutputStream(response.getOutputStream(), DEFAULT_BUFFER_SIZE); byte[] buffer = new byte[DEFAULT_BUFFER_SIZE]; int length; while ((length = input.read(buffer)) > 0) { output.write(buffer, 0, length); } } finally { input.close(); output.close(); } context.responseComplete(); } 

Datatable скачать:

 <p:dataTable value="#{downloadBean.downloads}" var="obj" emptyMessage="#{erros.sem_registros}"> <p:column headerText="#{msgs.acoes}" styleClass="width50"> <h:form> <h:commandLink value="#{msgs.download}" action="#{downloadBean.download(obj)}" /> </h:form> </p:column> </p:dataTable> 

Событие WebView:

 viewer.setDownloadListener(new DownloadListener() { @Override public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) { try { Toast.makeText(MainActivity.this, "Download ativo", Toast.LENGTH_SHORT).show(); String retorno = new DownloadUtil().getNew(url); if (retorno != null) { findBT(); openBT(); sendData(retorno); closeBT(); } else { Toast.makeText(MainActivity.this, "Não foi possível receber o arquivo do servidor", Toast.LENGTH_SHORT).show(); } } catch (Exception e) { e.printStackTrace(); Toast.makeText(MainActivity.this, "Conexão mal sucedida", Toast.LENGTH_SHORT).show(); } } });