2013-01-09 17 views
6

क्या एंड्रॉइड के वेबव्यू इतिहास से एक विशिष्ट यूआरएल मिटाना संभव है? मैं Google बहुत कुछ नहीं मिला लेकिन कोई सोल नहीं ढूंढ पाया, यहां तक ​​कि मैंने एपीआई के दस्तावेज की जांच की और मुझे लगता है कि ऐसा करने का कोई सीधा तरीका नहीं है। नीचे कोड पर एक नजर है: कोड के 2 लाइन सेएंड्रॉइड वेब व्यू इतिहास से एक विशेष यूआरएल हटाएं/मिटाएं?

// getting the whole list of web view's history.... 
WebBackForwardList list = wv.copyBackForwardList(); 
// getting previuous item/link 
String lastUrl = list.getItemAtIndex(list.getCurrentIndex()-1).getUrl(); 

यह स्पष्ट है कि यह इतिहास के साथ चारों ओर खेलने के लिए संभव है, इसलिए मुझे लगता है कि किसी न किसी तरह चाल वेब से किसी विशेष लिंक हटाना वहाँ होना चाहिए इतिहास देखे। क्या यह आपके लिए कोई समझ में आता है?

कोई भी कोड स्निपेट या कोई भी लिंक अत्यधिक सराहना की जाएगी।

धन्यवाद,

उत्तर

3

ठीक है, सुनिश्चित करें कि आप वास्तव में वापस आगे सूची के साथ चारों ओर खेल सकते हैं अगर नहीं। मुझे लगता है कि यह एक प्रतिलिपि है - कम से कम यही नाम बताता है।

हालांकि, आप कुछ डिग्री के लिए बैक स्टेपिंग में हेरफेर कर सकते हैं। मेरे मामले में मैं पहले से ही एप्लिकेशन से बाहर निकलता हूं जब उपयोगकर्ता दूसरे पृष्ठ से दूसरे पृष्ठ पर वापस कदम उठाने का प्रयास करता है।

@Override 
    public boolean dispatchKeyEvent(KeyEvent event) { 
    int action = event.getAction(); 
    int keyCode = event.getKeyCode(); 
    switch (keyCode) { 
     case KeyEvent.KEYCODE_BACK: 
      if ((action == KeyEvent.ACTION_DOWN) && myWebView.canGoBack()) { 
       WebBackForwardList list = myWebView.copyBackForwardList(); 
       String lastUrl = list.getItemAtIndex(list.getCurrentIndex()-1).getUrl().toString(); 

       // Exit if index == 1, i.e. currently on 2nd page 
       if (list.getCurrentIndex() == 1) { 
        finish(); 
       } else ... 

आप ऊपर से सामान के संयोजन और यूआरएल लोड हो रहा है अधिक भार से भी अन्य अन्य पन्नों पर कदम सकता है:

  @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String url){ 
       view.loadUrl(url); 
       return true; 
      } 
संबंधित मुद्दे