webView 이미지와 동영상 업로드 가능하게 하기 위해서 사용
-
게시물 수정 , 삭제는 로그인 필요
mWebView.setWebChromeClient(new WebChromeClient() {
// For Android < 3.0
public void openFileChooser( ValueCallback<Uri> uploadMsg) {
Log.d("MainActivity", "3.0 <");
openFileChooser(uploadMsg, "");
}
// For Android 3.0+
public void openFileChooser( ValueCallback<Uri> uploadMsg, String acceptType) {
Log.d("MainActivity", "3.0+");
m_oInstance.filePathCallbackNormal = uploadMsg;
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("image/*");
m_oInstance.startActivityForResult(Intent.createChooser(i, "File Chooser"), m_oInstance.FILECHOOSER_NORMAL_REQ_CODE);
}
// For Android 4.1+
public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture) {
Log.d("MainActivity", "4.1+");
openFileChooser(uploadMsg, acceptType);
}
// For Android 5.0+
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public boolean onShowFileChooser(
WebView webView, ValueCallback<Uri[]> filePathCallback,
FileChooserParams fileChooserParams) {
Log.d("MainActivity", "5.0+");
// Callback 초기화 (중요!)
if (filePathCallbackLollipop != null) {
filePathCallbackLollipop.onReceiveValue(null);
filePathCallbackLollipop = null;
}
filePathCallbackLollipop = filePathCallback;
boolean isCapture = fileChooserParams.isCaptureEnabled();
runCamera(isCapture);
return true;
}
});
위의 내용을 WebChromeClient 에 추가하고 저번 처럼 MainActivity에서 실행하고 싶습니다.
나머지 소스는 내용이 너무 길어지고 정리가 잘 안 될것 같아서 원본 사이트 주소를 남겨 드립니다.
기존에 수정해 주신 클래스에 위의 소스를 추가 부탁드립니다.
직접 했는데 에러가 자꾸나고 자바 완전 초보라서 다시 부탁드립니다.
기존에 답변해 주신 질문 링크 올립니다.
감사합니다.
mWebView.setWebChromeClient(new WebChromeClient() {
// For Android < 3.0
public void openFileChooser( ValueCallback<Uri> uploadMsg) {
Log.d("MainActivity", "3.0 <");
openFileChooser(uploadMsg, "");
}
// For Android 3.0+
public void openFileChooser( ValueCallback<Uri> uploadMsg, String acceptType) {
Log.d("MainActivity", "3.0+");
m_oInstance.filePathCallbackNormal = uploadMsg;
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("image/*");
m_oInstance.startActivityForResult(Intent.createChooser(i, "File Chooser"), m_oInstance.FILECHOOSER_NORMAL_REQ_CODE);
}
// For Android 4.1+
public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture) {
Log.d("MainActivity", "4.1+");
openFileChooser(uploadMsg, acceptType);
}
// For Android 5.0+
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public boolean onShowFileChooser(
WebView webView, ValueCallback<Uri[]> filePathCallback,
FileChooserParams fileChooserParams) {
Log.d("MainActivity", "5.0+");
// Callback 초기화 (중요!)
if (filePathCallbackLollipop != null) {
filePathCallbackLollipop.onReceiveValue(null);
filePathCallbackLollipop = null;
}
filePathCallbackLollipop = filePathCallback;
boolean isCapture = fileChooserParams.isCaptureEnabled();
runCamera(isCapture);
return true;
}
});
위의 내용을 WebChromeClient 에 추가하고 저번 처럼 MainActivity에서 실행하고 싶습니다.
나머지 소스는 내용이 너무 길어지고 정리가 잘 안 될것 같아서 원본 사이트 주소를 남겨 드립니다.
기존에 수정해 주신 클래스에 위의 소스를 추가 부탁드립니다.
직접 했는데 에러가 자꾸나고 자바 완전 초보라서 다시 부탁드립니다.
기존에 답변해 주신 질문 링크 올립니다.
감사합니다.