티스토리 뷰

모바일에서는 갤러리 호출하는 방법은 참 쉽습니다.

하지만 내가 원하는방식은 웹뷰에서!   네이버창을 보다가 글을 쓰면서 사진을 첨부하고싶을때, 보이는것은 웹인데 단말기의 갤러리에서 이미지를 가져오고싶을때 사용합니다.


참고. web은 WebView입니다.


onCreate에 웹뷰에다가 다음 속성을 적용하구요.


web.setWebChromeClient(new WebChromeClient() {

public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType)

{

mUploadMessage = uploadMsg;

Intent i = new Intent(Intent.ACTION_GET_CONTENT);

i.addCategory(Intent.CATEGORY_OPENABLE);

i.setType("*/*");

startActivityForResult(Intent.createChooser(i, "File Browser"), 0);

}

});

}



@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

// TODO Auto-generated method stub

super.onActivityResult(requestCode, resultCode, data);

if (requestCode == 0) {

if (null == mUploadMessage)

return;

Uri result = data == null || resultCode != RESULT_OK ? null : data.getData();

mUploadMessage.onReceiveValue(result);

mUploadMessage = null;

}

}


와 같이 처리하시면 웹뷰에서도 갤러리에 접근해서 이미지를 가져와서 웹뷰의 첨부파일로 입력이 완료됩니다!


(참고로 이 소스는 허니콤3.0 이상부터 적용가능한 소스입니다)



추가

// For Android 4.1+   4.1 이상 젤리빈에서 사용할 수 있는 소스

public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture) { 

openFileChooser(uploadMsg, "" );

}


 //  For Android < 3.0   3.0 미만에서 사용할 수 있는 소스

public void openFileChooser(ValueCallback<Uri> uploadMsg)

{

System.out.println("jsdflsaejflkjsaelofjweqopifjwpoifjopiwqejfp;oiwqwe;jfp;owqejfp;owqjopfwjep;ofjweop;fjwfj");

mUploadMessage = uploadMsg;

Intent i = new Intent(Intent.ACTION_GET_CONTENT);

i.addCategory(Intent.CATEGORY_OPENABLE);

i.setType("*/*");

     MainActivity.this.startActivityForResult(Intent.createChooser(i, "File Browser"), 0);

이로써 모든 버전에서 갤러리 사진불러오기가 가능해졌다!


도움이되셨다면 손가락 한번 눌러주세요~

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함