2010-07-14 13 views
24

मैंने वेबव्यू के साथ एक साधारण helloworld ऐप लिखा है जिसमें मेरे एसेट फ़ोल्डर में एक सरल.html पृष्ठ पर सीएनएन का लिंक है।एंड्रॉइड वेबव्यू - इंटरसेप्ट क्लिक

<a href="http://cnn.com">cnn.com</a> 

कैसे मैं अपने गतिविधि पर इस पर क्लिक कब्जा नेविगेट करने से WebView बंद करो, और उसके बाद गतिविधि है कि "http://CNN.com" क्लिक किया था सूचित कर सकते हैं?

उत्तर

65

तो फिर आप अपने WebView करने के लिए एक WebViewClient सेट और ओवरराइड shouldOverrideUrlLoading और onLoadResource तरीकों किया है। मैं आपको एक सरल उदाहरण देता हूँ:

WebView yourWebView; // initialize it as always... 
// this is the funny part: 
yourWebView.setWebViewClient(yourWebClient); 

// somewhere on your code... 
WebViewClient yourWebClient = new WebViewClient(){ 
    // you tell the webclient you want to catch when a url is about to load 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url){ 
     return true; 
    } 
    // here you execute an action when the URL you want is about to load 
    @Override 
    public void onLoadResource(WebView view, String url){ 
     if(url.equals("http://cnn.com")){ 
      // do whatever you want 
     } 
    } 
} 
+0

क्षमा मैं जानता हूँ कि यह पुराना है, लेकिन यह वास्तव में क्या मैं छोड़कर लिए देख रहा था था .... मेरे नेविगेशन पूरा नहीं करता है। जब उपयोगकर्ता वेबव्यू में किसी लिंक पर क्लिक करता है तो यह ऑवरराइड लोडिंग पर जाता है और यह चीज करता है लेकिन नेविगेशन को पूरा नहीं करता है। मैं चाहता हूं कि इसे पूरा करना पड़े, जो उन्होंने पहले चुना था। – GPGVM

+1

उस स्थिति में आपको shouldOverrideUrlLoading – Cristian

+1

में सत्य वापस नहीं करना चाहिए, इसलिए तब तक झूठी वापसी करें जब तक आप वास्तव में निरस्त नहीं करना चाहते। – GPGVM

संबंधित मुद्दे