마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

웹뷰 전화걸기 오류 문의합니다. tel:

0 추천

안녕하세요~

모바일홈페이지에 전화걸기를 하면 오류가 발생해서 문의합니다~

검색으로 웹뷰에서는 다른 소스를 삽입해야 전화걸기를 할수있다는것을 알았는데요

http://www.androes.com/119

위블로그를 보고 소스를 넣었는데 계속 오류가 발생합니다.

소스를 잘못넣은듯 한데요 어디에 넣어야 전화걸기를 할수있을까요??

 

package kr.modoo.church;

import android.net.Uri;
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.view.KeyEvent;
import android.view.Menu;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class Church extends Activity {

 WebView mWebView;
 
 @SuppressLint("SetJavaScriptEnabled")
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  
  startActivity(new Intent(this, SplashActivity.class));

  mWebView = (WebView) findViewById(R.id.webview); 

  mWebView.getSettings().setJavaScriptEnabled(true); // 웹뷰에서 자바스크립트실행

  mWebView.loadUrl("http://lampon.cafe24.com/m/"); // 연결할 홈페이지 지정
  mWebView.setWebViewClient(new ChurchWebViewClient()); //WebViewClient 지정 Church
 }

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.church, menu);
  return true;
 }
 
 

 // 기기 back 버튼인식
 @Override
 public boolean onKeyDown(int keyCode, KeyEvent event) {
 if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
 mWebView.goBack();
 return true;
 }
 return super.onKeyDown(keyCode, event);
 }

 //웹뷰 내부url 인식
 private class ChurchWebViewClient extends WebViewClient { //여기도변경 Church
 @Override
 public boolean shouldOverrideUrlLoading(WebView view, String url){
 view.loadUrl(url);
 return true;
 }
 }

  
       public boolean shouldOverrideUrlLoading(WebView view, String url) {
           if (url.startsWith("tel:")) {
               Intent i = new Intent(Intent.ACTION_CALL, Uri.parse(url));
               startActivity(i);
               return true;
           }
           
           view.loadUrl(url);
           return true;
       }
     }

 

익명사용자 님이 2014년 3월 6일 질문

2개의 답변

+2 추천
 
채택된 답변
맨 밑에 있는 shouldOverrideUrlLoading 메소드 삭제 하시구요.

거기에 있는 내용을 ChurchWebViewClient 클래스에 있는 shouldOverrideUrlLoading메소드에 넣으세요.
원조안드로이드 (58,190 포인트) 님이 2014년 3월 6일 답변
감사합니다 해결했습니다~
+1 추천
ACTION_CALL 말고 ACTION_VIEW 를 쓰세요.
익명사용자 님이 2014년 3월 6일 답변
...