package com.example.camera_app7;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;
public class TestWebViewActivity extends Activity {
private WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.webcontent);
webView = (WebView) findViewById(R.id.webView);
webView.setWebViewClient(new HelloWebViewClient());
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("http://192.168.0.37:8080/imgup/upload.jsp");
//String customHtml = "<html><body><h2>Greetings from JavaCodeGeeks</h2></body></html>";
//webView.loadData(customHtml, "text/html", "UTF-8");
webView.setWebChromeClient(new WebChromeClient() {
// ICS 에서도 동작하기 위해서는 아래메소드도 넣어줘야함.
public void openFileChooser(ValueCallback<Uri> uploadFile, String acceptType) {
openFileChooser(uploadFile);
}
public void openFileChooser(ValueCallback<Uri> uploadMsg) {
uploadMessage = uploadMsg;
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("*/*");
startActivityForResult(Intent.createChooser(i, "File Chooser"), FILECHOOSER_RESULTCODE);
}
});
}
//링크된 페이지가 우리의 웹뷰안에서 로드되게 하기
//웹뷰 클라이언트 재정의(WebViewClient)
private class HelloWebViewClient extends WebViewClient{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url){
view.loadUrl(url);
return true;
}
}
private static final int FILECHOOSER_RESULTCODE = 1;
private ValueCallback<Uri> uploadMessage = null;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == FILECHOOSER_RESULTCODE && uploadMessage != null) {
Uri result = data == null || resultCode != RESULT_OK ? null : data.getData();
uploadMessage.onReceiveValue(result);
uploadMessage = null;
}
}
}
jsp부분에서 inputtype이 file로 되어 있습니다.
웹에서는 작동이되는데 웹뷰에서는 파일선택이 안됩니다. 답변 부탁 드리겠습니다.