Webview - 从设备上传图像的最佳方式
Webview - Best way to upload images from device
我目前在 google play 和 itunes 上有应用程序,它们是共享网络视图的本机包装器。 webview 的美妙之处在于我可以在 webview 端进行更改,并且它们将立即在任何设备上可见,但是我无法从用户 albums/galleries 存储在他们设备上的图像上传图像。
使用我当前的 webview 策略,允许用户从其设备的本机上传图像的最快实现是什么 albums/galleries?
您可以使用标准的文件输入类型:
<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.
上进行一些编码
在较旧的平台上,有一个使用非官方 api (WebChromeClient #openFileChooser
) 的解决方法,但 Google 在 KitKat 中打破了这一点,然后在 Lollipop 中发布了对此功能的官方支持 WebChromeClient.html#onShowFileChooser
。因此,KitKat 可能会继续损坏,但在其他平台上它应该可以正常工作。
请参阅此 Android 错误报告问题 62220。
您可以自己实现(查看 this example), but if you're looking for a WebView subclass that "just works", you may want to try Android-AdvancedWebView 项目。
另一种选择,或者只是作为 KitKat 设备的修复,是让本机包装器将文件编码为 Base64 String,然后 HTML 应用可以发送它到服务器。
我目前在 google play 和 itunes 上有应用程序,它们是共享网络视图的本机包装器。 webview 的美妙之处在于我可以在 webview 端进行更改,并且它们将立即在任何设备上可见,但是我无法从用户 albums/galleries 存储在他们设备上的图像上传图像。
使用我当前的 webview 策略,允许用户从其设备的本机上传图像的最快实现是什么 albums/galleries?
您可以使用标准的文件输入类型:
<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.
上进行一些编码在较旧的平台上,有一个使用非官方 api (WebChromeClient #openFileChooser
) 的解决方法,但 Google 在 KitKat 中打破了这一点,然后在 Lollipop 中发布了对此功能的官方支持 WebChromeClient.html#onShowFileChooser
。因此,KitKat 可能会继续损坏,但在其他平台上它应该可以正常工作。
请参阅此 Android 错误报告问题 62220。
您可以自己实现(查看 this example), but if you're looking for a WebView subclass that "just works", you may want to try Android-AdvancedWebView 项目。
另一种选择,或者只是作为 KitKat 设备的修复,是让本机包装器将文件编码为 Base64 String,然后 HTML 应用可以发送它到服务器。