안녕하세요. 안드로이드스튜디오로 그누보드를 이용해서 웹뷰로 게시판을 구현했는데요. 파일첨부기능이 안되네요..<도와주세요.>
조회수 1990회
안녕하세요. 안드로이드 스튜디오로 앱 제작 중입니다. (초보) fragment에 그누보드5 게시판을 웹뷰로 불러와서 모바일에서 잘 작동됩니다. 하지만 게시글 작성에 파일첨부 버튼을 클릭하면 모바일에서는 아무런 작동을 하지 않습니다. 컴퓨터로 게시판 주소를 들어가보면 파일첨부 기능이 잘 작동되지만요.. java관련해서 안드로이드 스튜디오 파일 안에 추가해주어야 할 부분이 있나요? 퍼미션은 카메라와 외장메모리 추가해놓았습니다.. 안드로이드 sdk version 23입니다.
아니면 게시판 관련 php파일을 수정해주어야하나요 ? 수정해야한다면 어느부분에 어떤식으로 해야할지...자세하게 도와주시면 감사드리겠습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
안드로이드 웹뷰에서 파일첨부기능을 작동시키려면 openFileChooser를 오버라이드해서 따로 구현을 해주어야합니다. 안드로이드 버전별로 처리하는 방식이 다른데요. 최신버전기준으로는 아래처럼하시면됩니다.
private ValueCallback<Uri> mUploadMessage; private static final int FILECHOOSER_RESULTCODE = 1000; webView.setWebChromeClient(new WebChromeClient() { // ICS 에서도 동작하기 위해서는 아래메소드를 넣어줘야한데요. public void openFileChooser(ValueCallback<Uri> uploadFile, String acceptType) { openFileChooser(uploadFile); } public void openFileChooser(ValueCallback<Uri> uploadMsg) { mUploadMessage = uploadMsg; Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("*/*"); startActivityForResult(Intent.createChooser(intent, "File Chooser"), RC_FILE_CHOOSE ); }); // SD카드에서 파일을 선택하고 오면 아래 onActivityResult가 불릴거에요. @Override protected void onActivityResult(int requestCode, int resultCode, Intent intent) { if(requestCode==FILECHOOSER_RESULTCODE) { if (null == this.mUploadMessage) { return; } Uri result=null; try{ if (resultCode != RESULT_OK) { result = null; } else { result = intent.getData(); } } catch(Exception e) { Toast.makeText(getApplicationContext(), "activity :"+e, Toast.LENGTH_LONG).show(); } mUploadMessage.onReceiveValue(result); mUploadMessage = null; } }
-
(•́ ✖ •̀)
알 수 없는 사용자 -
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
-
댓글 입력