Webview - 从设备上传图像的最佳方式

时间:2015-04-01 23:39:39

标签: android ios image webview image-uploading

我目前在google play和itunes上有应用程序,它们是共享webview的原生包装。 webview的美妙之处在于我可以在webview端进行更改,并且可以立即在任何设备上查看它们,但是我遇到的问题是能够从存储在其设备上的用户的相册/画廊上传图像。 / p>

使用我当前的网页浏览策略,最快的实施是什么,允许用户从其设备的原生相册/画廊上传图片?

1 个答案:

答案 0 :(得分:3)

您可以使用标准文件输入类型

<form action="/server/upload" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload Image" name="submit">
</form>

这应该在iOS6 +上开箱即用,并打开原生打开文件对话框,但你必须在Android上进行一些编码。

在olders平台上有一个使用非官方api(WebChromeClient #openFileChooser)的解决方法,但Google在KitKat中打破了这个,然后在Lollipop中使用WebChromeClient.html#onShowFileChooser发布了对此功能的官方支持。因此,KitKat可能会继续破坏,但在其他平台上它应该可以正常工作。

请参阅此Android错误报告问题62220

您可以自己实现(查看this示例),但如果您正在寻找“正常工作”的WebView子类,您可能需要尝试Android-AdvancedWebView项目。

另一个选项,或者仅作为KitKat设备的修复,是让本机包装器将文件编码为 Base64 String ,然后HTML应用程序可以将其发送到服务器。