2012-02-13 8 views
6

से शुरू होता है और मैं एम्बेडेड वेबव्यू द्वारा किए गए अनुरोधों को शुरू करने और समाप्त करने का एक तरीका ढूंढ रहा हूं। मैं फोन को रूट करने और टीसीपीडम्प चलाने के अलावा अब तक ऐसा करने का कोई तरीका नहीं ढूंढ पा रहा हूं। यह मेरे लिए काम करता है, लेकिन मुझे इसे मैदान में चलाने की ज़रूरत है, इसलिए यह वास्तव में व्यवहार्य नहीं है। यूआरएल लॉग इन करने और समय शुरू करने के कई तरीके हैं, लेकिन मैं खत्म नहीं देख सकता (या, बोनस, पूर्ण प्रतिक्रिया मेटाडाटा)। अगर मैं वर्तमान अनुरोध लपेट सकता हैलॉग इन HTTP अनुरोध प्रारंभ और एंड्रॉइड वेबव्यू

shouldLoadResource काम कर सकता था, लेकिन क्योंकि वहाँ पर्याप्त आंतरिक अनुरोध करने के लिए पूरी तरह से आगे के संपर्क में एपीआई नहीं रहा है, ताकि उसे सामूहिक रूप से वापस जाने के लिए में HTTP समर्थन के साथ इसे अपने आप को लाने के लिए होगा । (मैं कई कारणों से ऐसा नहीं करना चाहता हूं, जिसमें डिवाइस पर उस वेबव्यू सहित HTTP क्लास के समान नेटवर्क स्टैक का उपयोग नहीं किया जाता है, और क्योंकि यह उप-स्रोतों का समय बदल देगा।)

I ' ऐसा करने के लिए chromium_net डीबग झंडे को चालू करने के तरीकों को खोजने का प्रयास कर रहा है, लेकिन मैं यह नहीं समझ सकता कि वेबव्यू या सिस्टम गुणों के संदर्भ में यह कैसे किया जाता है।

मैं वास्तव में नहीं बल्कि यह करने के लिए अपने खुद के webcore जहाज होगा नहीं, लेकिन अगर जरूरत है चाहिए ...

+0

बस जाँच ... जब आप कहते हैं कि "एम्बेड किए गए वेबदृश्य" है कि एक WebView अपने app बनाया है या एक आप किसी तरह से विरासत में मिला है? – Torid

+0

मेरे ऐप में बनाया गया। एपीआई द्वारा अनुमत सीमा तक, मैं क्षैतिज और लंबवत को नियंत्रित करता हूं। – shaver

उत्तर

0

उस मामले में, आप भी एक WebViewClient (http://developer.android.com/reference/android/webkit/WebViewClient.html देखें) जोड़ सकते हैं। जैसे

WebView webView.setWebViewClient(new MyWebViewClient()); 

. 
. 
. 

public class MyWebViewClient extends WebViewClient 
{ 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) 
    { 
    // Note time 

    // Return false to say we want the WebView to handle the url. 
    return false; 
    } 

    @Override 
    public void onPageFinished (WebView view, String url) 
    { 
    super.onPageFinished(view, url); 

    // Note time 
    } 
} 

नोट कुछ ऐसा दिखाई देगा कौन सा है कि दोनों shouldOverrideUrlLoading और onPageFinished केवल केवल मुख्य फ्रेम के लिए कहा जाता है - वे iframes या फ़्रेमसेट का आह्वान नहीं किया जाएगा। लेकिन यह आपको जो चाहिए वह आपको देना चाहिए।

+0

क्षमा करें, मुझे लगता है कि मैं स्पष्ट नहीं था। मुझे सभी अनुरोधों को देखने की ज़रूरत है, न केवल शीर्ष-स्तरीय पृष्ठों के लिए। छवियां, स्टाइलशीट्स, स्क्रिप्ट्स, एक्सएचआर इत्यादि। यही कारण है कि लोडलोड संसाधन को आशाजनक लग रहा था। – shaver

2

ओवरराइड विधि shouldInterceptRequest()

@Override 
public WebResourceResponse shouldInterceptRequest(WebView view, String url) { 
    Log.d(LOG_TAG, "shouldInterceptRequest: " + url); 

    return super.shouldInterceptRequest(view, url); 
} 
संबंधित मुद्दे