6

पर निष्पादन में देरी प्रतीत होता है मैंने हाल ही में देखा है कि मेरे ऐप में कभी-कभी एलएजी है। और अंतराल मेरा मतलब है यह 40 सेकंड तक लग सकते हैं द्वारा, निर्भर करता है कि मैं वाईफ़ाई या मोबाइल डेटा का उपयोग करें ...लॉग <GATE-M> DEV_ACTION_COMPLETED</GATE-M> एंड्रॉइड

मैं एक पृष्ठ url लोड, और फिर निष्पादन के लिए जे एस लोड:

webView = (WebView) view.findViewById(R.id.WebView); 

    webView.setWebViewClient(new WebViewClient() { 

     @Override 
     public void onPageStarted(WebView view, String url, Bitmap favicon) { 
      logDebug("Loading URL: " + url); 
      super.onPageStarted(view, url, favicon); 
     } 

     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      return WrappingClass.this.shouldOverrideUrlLoading(view, url); 
     } 

     @Override 
     public void onPageFinished(WebView view, String url) { 
      super.onPageFinished(view, url); 
     logInfo("loading JavaScript to webview."); 
     webView.loadUrl("full-js-here"); 

     } 

     @Override 
     public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
      logError("error code:" + errorCode); 
      super.onReceivedError(view, errorCode, description, failingUrl); 
     } 
    }); 

    WebSettings webSettings = webView.getSettings(); 
    webSettings.setSavePassword(false); 
    webSettings.setSaveFormData(false); 
    webSettings.setJavaScriptEnabled(true); 
    webView.requestFocus(View.FOCUS_DOWN); 
    webView.loadUrl("url"); 

कॉल करने के बाद लोड यूआरएल, पेज वेब दृश्य में प्रदर्शित किया जाता है, यूआई उत्तरदायी है, मैं, बटन पर क्लिक करें वापस जाने के लिए, और आवेदन नेविगेट कर सकते हैं ...

लेकिन

स्क्रिप्ट मैं कोशिश कर रहा हूँ रन निष्पादित नहीं किया जाता है, तक DEV_ACTION_COMPLETED लॉग पर मुद्रित है, तो सबकुछ सामान्य हो जाता है, और ऑन पेजजिनिश को तुरंत स्क्रिप्ट चलाया जाता है और चलाता है। समस्या यह 40 सेकंड तक लग सकती है।

== अद्यतन ==

ऐसा नहीं है कि देरी कुछ बात करने के लिए बढ़ रही है लगता है, और उसके बाद देरी कुछ भी नहीं करने के लिए छोटा है और फिर से बढ़ता है ... इसके एक दृश्य की तरह: 0,1, 2,4,8,16,32 ... और फिर से 0.

शुरू होता है यह हो सकता है क्योंकि मैं वेबदृश्य के साथ नई गतिविधियों बना रहा हूं एक समय की एक बहुत छोटा है,?

कोई विचार?

+0

जोड़ने 'कोशिश webView.setW ebChromeClient (नया WebChromeClient()); webView.setWebViewClient (नया WebViewClient()); 'वेब सेटिंग्स से पहले'setJavaScriptEnabled (सत्य); '। इसके अलावा यह देखो: http://stackoverflow.com/questions/5820237/android-webview-loadurl-with-javascript-onpagefinished-lag – Slartibartfast

+0

यह कुछ घंटों में एक जाना देंगे ... – TacB0sS

+0

काम नहीं किया था .. । :( – TacB0sS

उत्तर

5

हम इस भद्दा जारी करने के लिए एक समाधान अप स्केच में कामयाब रहे ... कोई बात नहीं क्या मुझे लगता है मैं इस मुद्दे पर एक जावा समाधान नहीं मिल सकता है की कोशिश की है, लेकिन हम एक HTML + जावास्क्रिप्ट समाधान मिला:

इसके बजाय जावा का onPageFinish के लिए इंतजार की

, हम एक जावा स्क्रिप्ट इंजेक्षन window.onload घटना को सुनने के लिए ...

और वहाँ हम अपने वास्तविक जावास्क्रिप्ट इंजेक्षन ... एक आकर्षण की तरह काम करता ...

For more details.

+2

आपका समाधान गूगल के रूप में यूआरएल के साथ अच्छी तरह से काम करता है और मैं अपने समाधान 1'ed +। लेकिन मैं एक खुशहाल पर्यटक हो सकता है अगर मैं समस्या के मूल कारण यह पता लगाने के बाद से यह चयन यूआरएल पर होता है हो सकता है। उदाहरण के लिए, .com, onPageFinished हमेशा इस तरह के लिंक्डइन के अधिकृत uRL के रूप में तुरंत चलाता है। एक और यूआरएल के साथ, onPageFinished सेटिंग्स के माध्यम से एप्लिकेशन के कैश को साफ। और webviewclient और वेब chromeclient के तरीके अधिभावी से अवलोकन करने के बाद पहली बार लोड पर ट्रिगर नहीं करता है, वहाँ कोई रिडायरेक्ट्स या उस पृष्ठ पर हो रहा त्रुटियों। – mainframe

+0

मुझे लगता है कि यह सामग्री लोड के साथ क्या करना है ... यदि आप एक सरल वेबव्यू एप्लिकेशन का निर्माण होगा, और सभी कॉलबैक प्रिंट आउट, आप ही ध्यान दिया, वह भी shouldOverride ... यूआरएल() मीटर प्रत्येक लोडिंग के लिए विधि नहीं कहा जाता है, यह निर्भर करता है कि अनुरोध प्राप्त होता है या पोस्ट होता है, यह निर्भर करता है कि ये AJAX कॉल हैं, मुझे पता चला है कि इसके लिए कई कारण हैं, और यह भी कि ChromeClient WebViewClient के समान ही रिपोर्ट करता है। – TacB0sS

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