새소식

🏫 Mobile/🦖 Android

[Android] 웹뷰, 웹앱에서 confirm, tel 등이 되도록 만드는 방법

728x90

안녕하세요. 팀드모네입니다.

오늘은 웹뷰, 웹앱에서 confirm, tel 등이 되도록 만드는 방법에 대해서 공유드리겠습니다.

 

1. 권한 체크

AndroidManifest.xml에 CALL_PHONE 권한이 있는지 체크

<uses-permission android:name="android.permission.CALL_PHONE"/>

 

2. shouldOverrideUrlLoading을 기술했는지 체크

mWebView.loadUrl("https://xn--vf4b17jsctv.com/index.html?isApp=true"); // 웹뷰에 표시할 웹사이트 주소, 웹뷰 시작 mWebView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (url.startsWith("kakaolink:") || url.startsWith("market:")) { Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity(intent); return true; }if (url.startsWith("tel:") || url.startsWith("tel:")) { Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse(url)); //전화거는 화면까지만 이동 시킬꺼면 Intent.ACTION_DIAL //전화를 바로 걸라면 Intent.ACTION_CALL startActivity(intent); }else { view.loadUrl(url); } return true; } }); mWebView.setWebChromeClient(new WebChromeClient() { @Override public boolean onJsConfirm(WebView view, String url, String message, final JsResult result) { new AlertDialog.Builder(view.getContext()) .setTitle("title") .setMessage(message) .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { result.confirm(); } }) .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { result.cancel(); } }) .setCancelable(false) .create() .show(); return true; } });

 

3. 결과 확인

결과를 확인합니다. 저는 이런식으로 나오네요.

 

이 포스팅은 페이스북의 audience-network를 기준으로 작성되었습니다.

Facebook 광고 좀 띄우겠다고 페북공식 github에서 코드받아왔다가 당황했네요 ㅠㅠ

URL : https://github.com/fbsamples/audience-network

 

블로그 방문해주셔서 감사합니다.

잘 해결되었기를 기원합니다. 추가로 질문사항이 있으면 댓글 남겨주세요 :)

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.