2011-03-29 19 views
6

के स्वचालित लिंकिफ़ को अक्षम करें मेरे पास एक वेबदृश्य है जिसे मैं बना रहा हूं। ऐसा लगता है कि स्वचालित रूप से संख्याओं को दूरभाष में जोड़ना है: यूआरएल। मुझे इस क्षमता को हटाने का कोई तरीका नहीं दिख रहा था (कम से कम कुछ भी टेक्स्टव्यू पर सक्षम करने के तरीके के समान नहीं)।वेबव्यू

कोड बहुत सरल है:

// 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 बदल रहा है। इसके अलावा, डायलर में ऐप संस्करण 1.0.0 खुलता है।

क्या इस कार्यक्षमता को अक्षम करने का कोई तरीका है?

अद्यतन: मुझे अभी पता चला है कि यह डिवाइस निर्भर है ... Droid X पर होता है, लेकिन सैमसंग कैप्टिवेट नहीं, न कि नेक्सस एस पर, और एम्यूलेटर नहीं।

+0

आपने उल्लेख किया कि एक टेक्स्टव्यू का उपयोग करना भी ठीक होगा। यहां आपको टेक्स्टव्यू के लिंक जोड़ने के तरीके पर एक लिंक मिलता है http://android-developers.blogspot.com/2008/03/linkify-your-text.html – Fender

उत्तर

0

मुझे आश्चर्य है कि यह आपके वेबव्यू से एक नंबर चुनने पर डायलर लॉन्च कर रहा है।

जब तक, आप WebViewClient :: shouldOverrideUrlLoading() को ओवरराइड नहीं करते हैं और यूआरएल योजना का पता लगाने में "टेल" है और डायलर गतिविधि शुरू होती है, यह कभी भी आपके वेब व्यू से डायलर लॉन्च नहीं करेगा। क्या आप वाकई टेलिफोन को संभालने में सक्षम नहीं हैं: ओवरराइड यूआरएल लोडिंग() में योजना चाहिए?

7

ऐसा करने का एक तरीका है - बदसूरत, दो स्तरित, लेकिन अभी भी एक कामकाज।

आप

  1. को संशोधित करना चाहिए कैसे वेबव्यू
  2. ऑटो linkifiable आइटम संभाल लेंगे स्पष्ट रूप से लोड किए गए पृष्ठ शैलियों और हैप्टिक फ़ीडबैक लागू करने के लिए नहीं बता सकते हैं।

    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

मुझे लगता है कि एक तीसरा प्रारूप-पहचान प्रकार है: <मेटा नाम = "प्रारूप-पहचान" सामग्री = "पता = नहीं" />। टेलीफोन-नहीं स्वचालित टेलिफोन बंद करता है: लिंक, ईमेल स्वचालित मेलto बंद करता है: लिंक, और पता भौगोलिक रोकता है: लिंक। मुझे ईमेल या पते पर कोई आधिकारिक दस्तावेज नहीं मिल रहा है। http://developer.apple.com/library/safari/#documentation/appleapplications/reference/SafariHTMLRef/Articles/MetaTags.html केवल टेलीफोन का उल्लेख करता है। –

-2

आप कोड है कि external/webkit/WebKit/android/nav/CacheBuilder.cpp में वास्तविक पता लगाने कर पा सकते हैं: FindPartialNumber() और इतने पर।

आप इसे अक्षम कर सकते हैं या तर्क को बदल सकते हैं।