답변 4개
웹뷰를 이용하여 만드신 것 같은데, 전화의 경우엔 tel: 프로토콜을 이용하고, 지도보기의 경우 market: 프로토콜을 이용합니다. 기본 내장된 웹뷰에는 해당 프로토콜을 넘겨받는 기능이 프로그래밍 되어 있지 않아 별도로 소스를 앱 소스를 수정하여 전달받을 수 있도록 처리하셔야 합니다.
댓글을 작성하려면 로그인이 필요합니다.
혹시 필요하실분이 계실거 같아서 자문자답합니다.
카이로님이 운영하시는 안드로사이드에서 뉴키님이 알려주신 답입니다.
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.startsWith("tel:")) {
Intent intent = new Intent(Intent.ACTION_DIAL,
Uri.parse(url));
startActivity(intent);
}else if(url.startsWith("http:") || url.startsWith("https:")) {
view.loadUrl(url);
}
return true;
}
http://www.androidside.com/bbs/board.php?bo_table=B60&wr_id=333" target=_blank>[출처] 안드로이드사이드 - http://www.androidside.com/bbs/board.php?bo_table=B60&wr_id=333
댓글을 작성하려면 로그인이 필요합니다.
1. webview(new Chrome()) 어쩌구저쩌구 해서
기본 웹뷰를 크롬으로 변경하면 됩니다. -> 이건 불확실 합니다.
2. 자바스크립트를 어플에 등록하는 경우가 있습니다.
즉 javascript:send_phone('010-4444-4444') 이라고 할경우에
어플에 프로그램을 등록하는 부분이 있습니다.
send_phone(string url)
{
Intent.startActivity();
}
3. target="_blank" 하면 제 기억으로 해당 웹뷰를 벗어나서 기본 브라우저를 쓰게 됩니다. 즉 팝업창처럼 뜨게되서 거기서 전화를 걸게 해야 할것 같습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인