안드로이드
[안드로이드] WebView 전화걸기 기능 구현
http://portfolio.wonpaper.net
2022. 11. 18. 00:25
WebView 가 올려진 하이브리드앱상에서 전화 바로걸기 기능을 구현해 본다.
1. AndroidManifest.xml 에서 아래의 권한 소스를 추가한다.
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.DIAL_PHONE" />
CALL_PHONE 은 전화 바로 걸기
DIAL_PHONE 은 전화걸기전 전화번호가 표시된상태로 나오는 형태 -> 통화버튼을 누르면 통화가 된다.
2. MainActivity.java 소스내
HTML 코드상에서 <a href="tel:010-123-4567"> 형태로 나오는 부분을 클릭시
아래의 오버라이드한 shouldOverrideUrlLoading() 함수부분중에서
Intent call_phone = new Intent(Intent.ACTION_CALL); 처럼 인텐트 처리를 한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
//Log.d("WebViewClient URL : ", request.getUrl().toString());
//view.loadUrl(request.getUrl().toString());
String url = request.getUrl().toString();
if (url.startsWith("tel:")) {
if (checkSelfPermission(Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
Toast.makeText(getApplicationContext(),"전화걸기 권한을 승인해 주셔야 정상적인 서비스가 가능합니다.",Toast.LENGTH_SHORT).show();
return true;
}
Intent call_phone = new Intent(Intent.ACTION_CALL);
call_phone.setData(Uri.parse(url));
// call_phone.addCategory("android.intent.category.BROWSABLE");
// call_phone.setComponent(null);
// call_phone.setSelector(null);
startActivity(call_phone);
}
return true;
}
|
cs |