본문 바로가기

안드로이드

android Webview 개발시 유용한 팁들~

웹뷰를 이용해 개발시에 자바스크립에서 사용 할수 있는 함수를 정의 하는 class입니다

 

webview.addJavascriptInterface(new WebAppInterface(this), "android");

 

이분을 webview 객체 생성이후에 추가 하시면 아래의 showToast 나 getPhoneNumber을 javascript 내에서

android.showToast , android.getPhoneNumber 로 사용 할 수 있습니다.

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

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

//웹에서 쓸수 있는 android 함수

    public class WebAppInterface {

        Context mContext;

 

        WebAppInterface(Context c) {

            mContext = c;

        }

 

        @JavascriptInterface

        public void showToast(String toast) {

            Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();

        }

 

        //토큰 얻기

        @JavascriptInterface

        public String getToken(){

            return token;

        }

 

        //위치정보 얻기

        @JavascriptInterface

        public String getPosition(){

 

            getLastLocation();

            return position;

        }

 

        //핸드폰 번호 얻기

        @JavascriptInterface

        public String getPhoneNumber(){

 

            TelephonyManager telephony = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

            String phoneNumber ="";

 

            if ( Build.VERSION.SDK_INT >= 23 &&

                    ContextCompat.checkSelfPermission( getApplicationContext(), android.Manifest.permission.READ_PHONE_STATE ) != PackageManager.PERMISSION_GRANTED )

            {

                ActivityCompat.requestPermissions( MainActivity.thisnew String[] {  android.Manifest.permission.READ_PHONE_STATE  },

                        0 );

            }else{

                if (telephony.getLine1Number() != null) {

                    phoneNumber = telephony.getLine1Number();

                }

                else {

                    if (telephony.getSimSerialNumber() != null) {

                        phoneNumber = telephony.getSimSerialNumber();

                    }

                }

            }

            return phoneNumber;

        }

    }

Colored by Color Scripter

반응형

'안드로이드' 카테고리의 다른 글

플레이스토어 업그레이드 버전 등록 하기  (0) 2019.03.18