메뉴 건너뛰기

XEDITION

ANDROID

2015.08.27 11:43

WebView 컨트롤

조회 수 445 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

- 안드로이드 WebView alert창 toast로 바꾸기

1
2
3
4
5
6
7
8
9
//alert 창 App에서 띄우기
webView.setWebChromeClient(new WebChromeClient(){
         @Override
            public boolean onJsAlert(final WebView view,final String url, final String message, JsResult result) {
               Toast.makeText(className.this, message, 3000).show();
               result.confirm();
               return true;
            }
 });

- 안드로이드 WebView 내부 자바스크립트를 통한 클래스핸들링  

#스크립트 

<script>

function callFunc(){

     window.android.test();

     window.android.testParams("값~!");

}

</script> 

# HTML

<a href="javascript:callFunc();">안드로이드 가로채기</a> 

 

# Android Main.class 

public class Main extends Activity 

    WebView nsWebView;

 

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.jstest); 

 

         final class JavaScriptExtention{

         JavaScriptExtention(){} 

         public void test(){

          Toast.makeText(getApplicationContext(), " 테스트", Toast.LENGTH_SHORT).show();

         } 

   // must be final

   public void testParams(final String arg){

         Toast.makeText(getApplicationContext(), " 테스트_전달값 : "+arg, Toast.LENGTH_SHORT).show();

   }

  } 

  nsWebView = (WebView) findViewById(R.id.nWebVeiw);

  webview.getSettings().setJavaScriptEnabled(true);

  nsWebView.addJavascriptInterface(new JavaScriptExtention(), "android");

 

- 웹뷰에서 input type file 파일선택창 띄우기

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
public class MyAwesomeActivity extends Activity {       
private WebView wv;    
private ValueCallback<uri> mUploadMessage;  
private final static int FILECHOOSER_RESULTCODE=1;    
@Override   protected void onActivityResult(int requestCode, int resultCode,   Intent intent) {  
 if(requestCode==FILECHOOSER_RESULTCODE)    {  
  if (null == mUploadMessage) return;            
      Uri result = intent == null || resultCode != RESULT_OK ? null  : intent.getData();
      mUploadMessage.onReceiveValue(result);             
      mUploadMessage = null;               
   }  
}    
@Override   public void onCreate(Bundle savedInstanceState) {   
     super.onCreate(savedInstanceState);   
     wv = new WebView(this);   
     wv.setWebViewClient(new WebViewClient());   
     wv.setWebChromeClient(new WebChromeClient()    {        
               //The undocumented magic method override         
               //Eclipse will swear at you if you try to put @Override here         
            public void openFileChooser(ValueCallback<uri> uploadMsg) {            
                      mUploadMessage = uploadMsg;           
                      Intent i = new Intent(Intent.ACTION_GET_CONTENT);          
                      i.addCategory(Intent.CATEGORY_OPENABLE);          
                      i.setType("image/*");           
                     MyAwesomeActivity.this.startActivityForResult(Intent.createChooser(i,"File Chooser"), FILECHOOSER_RESULTCODE);      
        }    });   
    setContentView(wv); 
 
 </uri></uri>
?

List of Articles
번호 제목 글쓴이 날짜 조회 수
64 [슈팅 게임 만들기] 11. 강좌가 늦어져 예제로 대신합니다 엘리후 2017.06.01 93
63 안드로이드 게임 만들기 SpriteAnimation 엘리후 2016.02.29 672
62 [안드로이드 어플 개발] 이동 애니메이션 (Translate Animation) 엘리후 2015.12.24 373
61 Multipart를 이용하여 파일+문자열 한꺼번에 전송하기 엘리후 2015.12.01 3140
60 How do I upload large files (10MB) in Android? 엘리후 2015.11.26 925
59 Upload Video from android to server? 엘리후 2015.11.26 266
58 안드로이드] Fragment 쉽게 사용하기 엘리후 2015.11.24 386
57 안드로이드(android) 다이얼로그(dialog) 종류별 구현 방법 엘리후 2015.11.11 431
56 ActionBar에 메뉴 넣기. 엘리후 2015.11.11 188
55 앱 통계를 내 사이트에서 수집하기 엘리후 2015.10.07 827
54 나인패치 (9patch) 이미지 만드는 방법 엘리후 2015.10.07 350
53 VOLLEY 라이브러리 엘리후 2015.10.02 539
52 안드로이드 나인패치 이미지 만들기 [나인패치 영역선택 및 수정] 엘리후 2015.09.25 879
51 안드로이드 Support Library Setup 엘리후 2015.09.25 444
50 안드로이드 Multipart 업로드 예제 엘리후 2015.09.23 8811
49 이클립스/Eclipse 메모리 Heap 영역 늘리기 엘리후 2015.09.13 263
48 [Android, Hybrid]openFileChooser 킷캣에서 동작하지 않는 문제( openFileChooser Kitkat bug ) 엘리후 2015.08.27 605
47 Android – WebView에서 input태그를 통한 파일 업로드하기 엘리후 2015.08.27 3627
» WebView 컨트롤 엘리후 2015.08.27 445
45 안드로이드 동영상 파일 업로드 예제 엘리후 2015.08.25 1181
44 안드로이드 채팅 ui 만들기 관련 리스트뷰(ListView)의 layout_weight 옵션을 이용한 채팅 GUI 구현, 카카오 채팅 말풍선 엘리후 2015.08.21 27790
43 Android 간단한 로그인, 회원 가입 폼 만들기 for Mac (PHPMyAdmin 이용) 엘리후 2015.08.21 1962
42 안드로이드 프레임워크 프로그래밍 [시스템서비스 추가하기] 엘리후 2015.08.11 156
41 안드로이드에서 실행 시 발생하는 에러 엘리후 2015.08.10 164
40 안드로이드 ; 스크롤 뷰 엘리후 2015.08.09 1840
39 android Facebook SDK 3.0 로그인 및 포스팅 엘리후 2015.08.07 479
38 [android] 안드로이드 전역 변수 사용하기 android global variable 엘리후 2015.07.30 645
37 [Android] WebView를 사용할때 HttpClient를 이용한 Session 유지 엘리후 2015.07.29 5567
36 [MY_SQL] where절과 having절의 차이 엘리후 2015.07.27 246
35 [안드로이드 개발 강좌] 데이터베이스(DataBase) - DB 생성,저장,수정,삭제 엘리후 2015.07.21 939
Board Pagination Prev 1 2 3 Next
/ 3
위로