दिलचस्प पोस्ट
एक आईपीवी 6 पते की शाब्दिक प्रतिनिधित्व की अधिकतम लंबाई? एक से अधिक एसवीएन रिपॉजिटरी के संयोजन रेमंड को अलग करने के लिए ऊंट कैस या टाईटलसीज (उन्नत) एएसपी.नेट एमवीसी 4 में कस्टम त्रुटि पेज कैसे काम करते हैं आईआईएस ने प्री प्रीलाइट ऑप्शन अनुरोध को अपहृत कर दिया कैसे सही ढंग से integers की एक सरणी को सॉर्ट करने के लिए दो तिथियों के बीच दिन का अंतर ढूंढें (सप्ताहांत के दिनों को छोड़कर) एंड्रॉइड-समर्थन- v7-appcompat और android-support-v4 के बीच का अंतर मूल C ++ (C ++ \ CLI और IJW का उपयोग करके) सी # पुस्तकालय को कैसे कॉल किया जाए मेरा कार्यक्रम बनाने का सबसे अच्छा तरीका क्या होगा? JSF परियोजना में <welcome-file> के माध्यम से डिफ़ॉल्ट होम पेज सेट करें डेटा विशेषता द्वारा तत्व का चयन करना क्या सी # में .NET समर्थन ट्यूपल्स के भविष्य का संस्करण होगा? क्या यह संभव है "टी के एक सामान्य सरणी एक varargs पैरामीटर के लिए बनाया है" संकलक चेतावनी? java.util.Date को XMLGregorianCalendar

एंड्रॉइड वेबव्यू में यूट्यूब वीडियो को कैसे रोकें?

मैं एक यूट्यूब वीडियो को कैसे रोक सकता हूं जो कि मेरी वेबव्यू में खेला जाता है? जब मैं बैक बटन पर क्लिक करता हूं तो वीडियो बंद नहीं होता है और इसके बजाय पृष्ठभूमि में जारी रहता है

कोड:

webView = (WebView) findViewById(R.id.webview); webView.getSettings().setPluginsEnabled(true); webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setBuiltInZoomControls(false); webView.getSettings().setSupportZoom(false); webView.loadData(myUrl,"text/html", "utf-8"); 

वेब के समाधान से एकत्रित समाधान "एंड्रॉइड वेबव्यू में यूट्यूब वीडियो को कैसे रोकें?"

WebView थ्रेड्स के बारे में निम्न पोस्ट देखें जो कभी भी नहीं रोकते हैं

मूल रूप से आपको अपनी स्वयं की गतिविधि के पोज़ पद्धति से WebView के पोज़ पद्धति को कॉल करने की आवश्यकता होगी।

इस के साथ एकमात्र चाल यही है कि आप वेबव्यू की ऑन पॉज़ पद्धति को सीधे कॉल नहीं कर सकते क्योंकि यह छिपा हुआ है इसलिए आपको इसे परोक्ष रूप से प्रतिबिंब के माध्यम से कॉल करना होगा निम्न कोड आपको अपना स्वयं का गतिविधि की स्थिति को सेट करने पर प्रारंभ करना चाहिए:

 @Override public void onPause() { super.onPause(); try { Class.forName("android.webkit.WebView") .getMethod("onPause", (Class[]) null) .invoke(webview, (Object[]) null); } catch(ClassNotFoundException cnfe) { ... } catch(NoSuchMethodException nsme) { ... } catch(InvocationTargetException ite) { ... } catch (IllegalAccessException iae) { ... } } 

ध्यान दें कि ऊपर दिए गए प्रयास ब्लॉक में चर 'वेबव्यू' क्लास के लिए एक निजी इंस्टेंस वैरिएबल है और इसे गतिविधि की क्रिएट विधि में निर्दिष्ट किया गया है।

समाधान: 1 – बहुत समय व्यतीत करने के बाद, मुझे वीडियो को रोकने के लिए निष्कर्ष मिला जो वेबआईवी <iframe> HTML के संकल्पना के साथ चल रहा है।

बस गतिविधि या टुकड़ा पर onPause() विधि ओवरराइड जब भी आप WebView इस्तेमाल किया, और इसे कहते हैं। इससे मेरा काम बनता है।

 @Override public void onPause() { super.onPause(); mWebView.onPause(); } @Override public void onResume() { super.onResume(); mWebView.onResume(); } 

समाधान: 2 – यदि उपरोक्त समाधान आपके लिए काम नहीं करता है, तो आप वेबव्यू को गैर-मौजूद HTML फ़ाइल लोड करने के लिए बाध्य कर सकते हैं।

 mWebview.loadUrl("file:///android_asset/nonexistent.html"); 

आपको ऑन-रिज्यूम () विधि को लागू करना है या दूसरी बार काम नहीं करना है

 @Override public void onResume() { super.onResume(); webView.onResume(); } @Override public void onPause() { super.onPause(); webView.onPause(); } 

उपरोक्त समाधान एंड्रॉइड 2.3.3 के साथ सैमसंग गैलेक्सी एस पर मेरे लिए विफल रहे। लेकिन मुझे नीचे दिए गए समाधान की कोशिश में सफलता मिली:

  webview.loadUrl("file:///android_asset/nonexistent.html"); 

मैं वेबव्यू को गैर-मौजूद HTML फ़ाइल लोड करने के लिए मजबूर कर रहा हूं। ऐसा लगता है कि वेबव्यू को चीजों को साफ करने के लिए मजबूर किया जा रहा है

 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(keyCode==event.KEYCODE_BACK) { mWebview.loadUrl(""); mWebview.stopLoading(); finish(); } return super.onKeyDown(keyCode, event); } 

यह काम करता हैं

और यहाँ मेरा व्यक्तिगत पसंदीदा है:

 @Override protected void onPause() { super.onPause(); if (isFinishing()) { webView.loadUrl("about:blank"); } else { webView.onPause(); webView.pauseTimers(); } } @Override protected void onResume() { super.onResume(); webView.resumeTimers(); webView.onResume(); } 

यह वेबव्यू को रोकता है, यदि दृश्य को केवल रोका गया है, लेकिन गतिविधि समाप्त होने पर इसे साफ़ कर देता है

इसके लिए कम से कम एंड्रॉइड 3.0 की आवश्यकता है – एपीआई 11 (हनीकॉब)

Webview.loadUrl ( "about: blank");

यह भी काम कर रहा है

इस समस्या का सामना करने के बाद ऐसा लगता है कि onpause कुछ भी नहीं हो सकता है … मेरे लिए यह पृष्ठभूमि में जो कुछ भी खेल रहा था रोक नहीं रहा था।

तो मेरा कोड अब दिखता है

 @Override protected void onPause() { mWebView.onPause(); super.onPause(); } @Override protected void onResume() { mWebView.onResume(); super.onResume(); } @Override protected void onSaveInstanceState(Bundle outState) { mWebView.saveState(outState); super.onSaveInstanceState(outState); } @Override protected void onDestroy() { mWebView.destroy(); mWebView = null; super.onDestroy(); } 

आशा है कि यह मेरे जैसे एक ही समस्या के साथ किसी को मदद करता है

इसे इस्तेमाल करे:

 @Override public void onPause() { super.onPause(); myWebView.onPause(); myWebView.pauseTimers(); } @Override public void onResume() { super.onResume(); myWebView.resumeTimers(); myWebView.onResume(); } @Override protected void onDestroy() { myWebView.destroy(); myWebView = null; super.onDestroy(); } 

यह मेरे लिए काम करता है

 @Override protected void onPause() { super.onPause(); if (wViewCampaign != null){ wViewCampaign.stopLoading(); wViewCampaign.loadUrl(""); wViewCampaign.reload(); wViewCampaign = null; } } 

आप यह कोशिश कर सकते हैं

 webView.loadUrl("javascript:document.location=document.location"); 

अगर जो पेज लोड हो रहा है वह है जिसे आप संपादित कर सकते हैं, तो आप एक जावास्क्रिप्ट पद्धति लिख सकते हैं जो आप को बंद करने के लिए ऑडियो और कॉल को रोकते हैं।

जावास्क्रिप्ट फ़ंक्शन

  function stopAudio(){ audios=document.querySelectorAll('audio'); for(i=0;i<audios.length;i++){ audios[i].stop(); } } 

Andorid से इस विधि को कॉल करें

 webView.loadUrl("javascript:stopAudio()"); 

अगर पेज आपके द्वारा संपादन योग्य नहीं है, तो आप जेएस कोड इंजेक्ट कर सकते हैं

  @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); injectScriptFile(view, "js/script.js"); } 

इंजेक्षन कैसे करें विस्तार में यहां देखें

आप वेबव्यू के onPause() पर विधि का उपयोग करके यह कर सकते हैं जब आपकी Activity onPause() पर विधि निष्पादित की जाती है:

 @override public void onPause() { super.onPause(); if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){ webview.onPause(); } } 
  • API >= 11 लिए काम करता API >= 11 ( Honeycomb )

यह इस पृष्ठ पर दिए गए हर कोड का प्रयास करने के बाद आखिरकार काम किया जाता है। उफ़!

 @Override protected void onPause() { super.onPause(); if (mWebView != null) { mWebView.stopLoading(); mWebView.reload(); } } @Override protected void onResume() { super.onResume(); } 

यह कोड मेरे लिए एकदम सही काम करता है

  @Override protected void onPause() { super.onPause(); wv.onPause(); wv.pauseTimers(); } @Override protected void onResume() { super.onResume(); wv.resumeTimers(); wv.onResume(); }