관리 메뉴

플랫폼공작소 IT Blog

웹뷰, 웹앱에서 confirm, tel 등이 되도록 만드는 방법 본문

mobile/Android

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

솜픽(Sompic) 플랫폼공작소 2020. 7. 3. 10:51

안녕하세요. 이사작전입니다.

오늘은 웹뷰, 웹앱에서 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


추가로 질문사항이 있으면 댓글남겨주세요. 

오늘도 업무 화이팅하세요~ 감사합니다.

0 Comments
댓글쓰기 폼