웹뷰를 이용해 개발시에 자바스크립에서 사용 할수 있는 함수를 정의 하는 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.this, new 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; } } |
'안드로이드' 카테고리의 다른 글
플레이스토어 업그레이드 버전 등록 하기 (0) | 2019.03.18 |
---|