【问题标题】:Cordova InAppBrowser download file from JSP pageCordova InAppBrowser 从 JSP 页面下载文件
【发布时间】:2016-06-02 08:59:29
【问题描述】:

我有一个应用程序可以在 InAppBrowser 中打开一个外部网站。该网站使用 Java Server Pages 和 Java Server Faces。我想检测用户何时想要下载文件并用意图选择器提示他/下载文件/在 Chrome 中打开文件。

问题是当我点击一个文件时没有任何反应,我也尝试添加一个 DownloadListener,但它从未被调用。网址不包含任何扩展名,因此我无法检测到它,相反,所有请求都是通过带有一些表单数据的当前页面的 POST 发出的,并且响应具有标题:

Content-Disposition:attachment;filename=somefilename.xlsx
Content-Type:application/octet-stream
Transfer-Encoding:chunked
X-FRAME-OPTIONS:SAMEORIGIN
X-Powered-By:Servlet/3.0 JSP/2.2
X-Powered-By:JSF/2.0  

我找不到任何方法来让它工作。在 iOS 上,文件在新页面中打开,就像在浏览器中一样,但在 Android 上没有任何反应。

我必须使用 InAppBrowser,因为该应用的作用是为现有网站提供应用,而使用 iframe 不是解决方案,因为它们不允许跨源请求。

更新
这是下载链接的样子:

<form id="j_idt181:0:j_idt196" name="j_idt181:0:j_idt196" method="post" action="/somepathhere/portal.xhtml" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="j_idt181:0:j_idt196" value="j_idt181:0:j_idt196">
    <a href="#" onclick="something.jsfcljs(document.getElementById('j_idt181:0:j_idt196'),{'j_idt181:0:j_idt196:j_idt197':'j_idt181:0:j_idt196:j_idt197'},'');return false">
        <img src="/somepathhere/javax.faces.resource/excel.png.xhtml?ln=img" style="width:30px; height: 30px; " title="Download">
            Download
        </img>
        <input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="-5463575505694988987:906233489912842961" autocomplete="off">
        </input>
    </a>
</input>

【问题讨论】:

    标签: cordova android-webview inappbrowser


    【解决方案1】:

    您无法通过 InAppBrowser 下载文件。我建议尝试使用像File Transfer Plugin 这样的插件通过应用程序异步下载文件。我猜你访问的 JSP 网站使用的是&lt;input type="file /&gt;",而doesn't really work 是移动设备。

    【讨论】:

    • 我知道我无法通过 InAppBrowser 下载,我只想“检测”用户何时单击文件并以某种方式使用意图系统下载它,或者只是在 chrome 中打开它,或者使用您提供的插件。但我不知道如何使用下载链接。我用示例链接更新了我的问题。
    • 可能无法从 InAppBrowser 中与应用程序通信。我还没有看到任何人这样做的例子。我唯一知道的是 InApprowser 将调度的事件:loadstartloadstoploaderrorexit
    • 我可以编辑 InAppBrowser 的源代码,有一些方法可能会有所帮助,但我还没有找到任何有用的方法来使用它们。 developer.android.com/reference/android/webkit/…developer.android.com/reference/android/webkit/…
    猜你喜欢
    • 2021-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多