我尝试在webview上打开文件或图像。 我的Android版本是4.4.2所以有些方法不再适用了。 我找到了链接:https://github.com/cdibened/filechooser但我不知道如何实现它,可能我需要完整的项目。
工作一天后,我打算检测按钮并使用意图打开文件。我的问题是在选择文件后,它没有附加到按钮类型='文件'
我的Android代码是
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Get webview
webView = (WebView) findViewById(R.id.webView1);
// Define url that will open in webview
String webViewUrl = "http://leafy-sunrise-86906.appspot.com/";
// Javascript inabled on webview
webView.getSettings().setJavaScriptEnabled(true);
// Other webview options
webView.getSettings().setLoadWithOverviewMode(true);
//webView.getSettings().setUseWideViewPort(true);
//Other webview settings
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webView.setScrollbarFadingEnabled(false);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setPluginState(PluginState.ON);
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setSupportZoom(true);
//Load url in webview
webView.loadUrl(webViewUrl);
WebSettings ws = webView.getSettings();
ws.setJavaScriptEnabled(true);
webView.addJavascriptInterface(new Object()
{
@JavascriptInterface
public void performClick()
{
// Deal with a click on the OK button
Log.d("OpenFile", "Success");
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE);
}
}, "openfile");
}
private static final int PICK_IMAGE = 1;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == PICK_IMAGE && data != null && data.getData() != null) {
Uri _uri = data.getData();
//User had pick an image.
Cursor cursor = getContentResolver().query(_uri, new String[] { android.provider.MediaStore.Images.ImageColumns.DATA }, null, null, null);
cursor.moveToFirst();
//Link to the image
final String imageFilePath = cursor.getString(0);
cursor.close();
}
super.onActivityResult(requestCode, resultCode, data);
}
}
和网站
<input type="file" id="fileinput" name="fileinput" onclick="openfile.performClick();"/>
选择文件后,如何将其附加到按钮。或者任何好主意。
非常感谢你。
答案 0 :(得分:0)
您可以使用sendJavaScript。这将是这样的。在您的活动结果中添加以下代码:
cursor.close();
sendJavascript("getResult('"+imageFilePath+"')");
然后在你的网站上,只需添加javascript方法即可获得结果。
function getResult(path){
document.getElementById("fileInput").value = path;
}
但是您应该知道,由于安全原因,输入类型文件无法动态添加值属性,因此您应该使用输入类型文本来保存图像路径。