2011-03-29 2 views
6

내가 만드는 웹보기가 있습니다. 자동으로 숫자를 tel : url에 연결하는 것 같습니다. 이 기능을 제거하는 방법을 보지 못했습니다 (최소한 텍스트 뷰에서 사용 가능하게하는 방법과 비슷한 것은 없습니다). 자동으로 웹보기 링크 사용 안 함

코드

은 매우 간단하다 :

// populate the web view 
WebView webView = (WebView) findViewById(R.id.app_info_webview); 
webView.getSettings().setJavaScriptEnabled(true); 
webView.setScrollBarStyle(WebView.SCROLLBARS_INSIDE_OVERLAY); 

webView.setBackgroundColor(0); 
String url = APP_INFO_BODY_HTML + "?versionName=" + versionName; 

webView.loadUrl(url); 

내가 페이지 하단에 저작권 표시가 있고, 안드로이드는 전화 걸기를 여는 클릭 가능한 링크로 2011 년을 변화하고 있습니다. 또한 App 버전 1.0.0이 다이얼러에서 열립니다.

이 기능을 사용 중지하는 방법이 있습니까?

업데이트 : 기기 의존적 인 것으로 나타났습니다 ... Droid X에서는 발생하지만 Samsung Captivate에서는 발생하지 않으며 Nexus S에서는 발생하지 않으며 에뮬레이터에서는 발생하지 않습니다.

+0

당신은 textview를 사용하는 것이 좋을 것이라고 언급했습니다. 여기에 텍스트보기에 링크를 추가하는 방법에 대한 링크가 있습니다 http://android-developers.blogspot.com/2008/03/linkify-your-text.html – Fender

답변

0

저는 자신의 WebView에서 번호를 선택할 때 Dialer가 실행되는 것을 보니 놀랍습니다.

WebViewClient :: shouldOverrideUrlLoading()을 대체하고 URL 구성표에 "tel"가 있고 Dialer 활동이 시작되지 않으면 WebView에서 다이얼러를 실행하지 않는 한. shouldOverrideUrlLoading()에서 tel : scheme을 처리하지 않습니까?

7

이렇게하는 방법이 있습니다. 오히려 못 생겨서, 두 개의 레이어가 있지만 여전히 해결 방법이 있습니다.

당신은

  1. 는 웹보기가 명시 적으로 스타일과 햅틱 피드백을 적용 할로드 페이지를하지 말 자동 linkifiable 항목
  2. 을 처리하는 방법을 수정해야합니다. html로에서
    mWebView.setWebViewClient(new WebViewClient() { 
    
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, final String url) { 
        Uri uri = Uri.parse(url); 
    
        //TODO analyse the uri here 
        //and exclude phone and email from triggering any action 
    
        return false; 
    } 
    
    public void onReceivedError(WebView view, int errorCode, 
                 String description, String failingUrl) {} 
    
    public void onPageFinished (WebView view, String url) {...} 
    
    public void onPageStarted(WebView view, String url, Bitmap favicon) {...} 
    
    public void onLoadResource(WebView view, String url) {...} 
    }); 
    

    태그 내부에 다음 메타 태그를 지정이 도움이

    <meta name="format-detection" content="telephone=no" /> 
    <meta name="format-detection" content="email=no" /> 
    

희망을.

+1

제 3의 형식 감지 유형이 있다고 생각합니다 : 전화 번호는 자동 tel : 링크를 멈추지 않고 이메일은 자동 mailto : 링크를 멈추고 주소는 지역을 멈 춥니 다. 전자 메일이나 주소에 대한 공식 문서를 찾을 수 없습니다. http://developer.apple.com/library/safari/#documentation/appleapplications/reference/SafariHTMLRef/Articles/MetaTags.html에는 전화 만 언급되어 있습니다. –

-2

당신은 external/webkit/WebKit/android/nav/CacheBuilder.cpp에 실제 탐지를 수행 코드를 찾을 수 있습니다 등등 FindPartialNumber()을하고 있습니다.

원하는대로 로직을 비활성화하거나 변경할 수 있습니다.