我目前在google play和itunes上有应用程序,它们是共享webview的原生包装。 webview的美妙之处在于我可以在webview端进行更改,并且可以立即在任何设备上查看它们,但是我遇到的问题是能够从存储在其设备上的用户的相册/画廊上传图像。 / p>
使用我当前的网页浏览策略,最快的实施是什么,允许用户从其设备的原生相册/画廊上传图片?
答案 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应用程序可以将其发送到服务器。