출처 : http://phm0515.blog.me/20124839853
웹 페이지에서 전화걸기, SMS 보내기, 지도 연동
너무나 간단하게 다음과 같이 코딩만 하면 된다.
TEST환경 : 갤럭시 탭(android 2.2)
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
</head>
<body>
<a href='mailto:phm0515@paran.com'>메일 ToOOO</a><br>
<a href='tel:01195946451'>전화</a><br>
<a href='sms:01194946451'>문자</a><br>
<a href='geo:35.10130206860842,129.02011692523956?z=16'>블루컴</a><br>
<a href='geo:35.05482870921432,128.39654088020325?z=16'>당항포</a><br>
<a href='http://naver.com'>링크</a><br>
</body>
</html>
App에서 브라우저 위젯을 사용하는 경우 위의 방법으로해도 되지만..
아래와 같이 WebView의 이벤트 활용하는 방법도 있다.
에뮬레이터에서 TEST 할 경우 주의할 점은..
1. AndroidManifest.xml파일에 퍼미션을 지정(전화, SMS, 지도)
2. 메일 보내기의 경우, 메일 셋팅 후 메일 보내기 가능..
3. 지도 서비스의 경우, 인터넷이 되는지와 android 에뮬이아닌, google 에뮬을 사용해야 합니다..
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
WebView webView = (WebView)findViewById(R.id.webView);
webView.loadUrl(http://페이지주소);
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String overrideUrl) {
if(overrideUrl.startsWith("http://")) {
return false;
}
if (overrideUrl.startsWith("mailto:")) {
Intent i = new Intent(Intent.ACTION_SENDTO, Uri.parse(overrideUrl));
startActivity(i);
return true;
}
if (overrideUrl.startsWith("sms:")) {
Intent i = new Intent(Intent.ACTION_SENDTO, Uri.parse(overrideUrl));
startActivity(i);
return true;
}
if (overrideUrl.startsWith("tel:")) {
Intent i = new Intent(Intent.ACTION_CALL, Uri.parse(overrideUrl));
startActivity(i);
return true;
}
if (overrideUrl.startsWith("geo:")) {
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(overrideUrl));
startActivity(i);
return true;
}
return false;
}
});
}