2013-10-14 11 views
20

के लिए मैं वेबव्यू में एचटीएमएल 5 वीडियो खेलने के लिए कोशिश कर रहा हूँ मौजूद setPluginsEnabled नहीं और setPluginsEnabledWebView

WebView.getSettings().setPluginsEnabled 

करने की जरूरत है, लेकिन यह वस्तु के लिए मौजूद नहीं है। समस्या क्या है?

इस

मेरी कोड है:

package com.example.arachim; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.webkit.WebChromeClient; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 

public class MainActivity extends Activity { 

WebView view; 

//@SuppressWarnings("deprecation") 
@Override 
protected void onCreate(Bundle savedInstanceState) 

{ 
    super.onCreate(savedInstanceState); 

    view = new WebView(this); 

    String url= new String("http://broken-links.com/tests/video/"); 
    WebChromeClient chromeClient = new WebChromeClient(); 
    WebViewClient wvc = new WebViewClient(); 

    view.setWebChromeClient(chromeClient); 
    view.setWebViewClient(wvc); 
    view.getSettings().setJavaScriptEnabled(true); 
    view.getSettings().setP 
} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
    } 
} 

उत्तर

29

समारोह WebView.getSettings().setPluginsEnabled(); विधि एपीआई स्तर 9 के बाद से बहिष्कृत कर दिया गया, और एपीआई स्तर 18 में हटा दिया गया था आप नए समारोह WebView.getSettings().setPluginState(WebSettings.PluginState.ON); जो एपीआई स्तर 8 में जोड़ा गया है का उपयोग कर सकते और एपीआई स्तर 18 में बहिष्कृत किया गया था। WebSettings Documentation के अनुसार 18 से अधिक एपीआई स्तर प्लगइन्स का समर्थन नहीं करेंगे; मुझे लगता है कि समर्थन करने के लिए मुख्य प्लगइन फ्लैश था जो एडोब अब मोबाइल के लिए विकसित नहीं हो रहा है।

if (Build.VERSION.SDK_INT < 8) { 
     webview.getSettings().setPluginsEnabled(true); 
    } else { 
     webview.getSettings().setPluginState(PluginState.ON); 
    } 

आशा इस मदद करता है:

+0

मैं अपने ऐप में (पहले से प्लेस्टो में) WebView.setPluginsEnabled() और targetSdkVersion 17 का उपयोग कर रहा हूं। अब, मैं कुछ नए फीचर्स के साथ इसे अद्यतन संस्करण जारी करने जा रहा हूं। मैंने targetSdkVersion 19 सेट किया है, लेकिन मैंने इसे एंड्रॉइड बिल्ड लक्ष्य 4.2.2 के साथ सफलतापूर्वक संकलित किया है। मैंने विभिन्न संस्करणों पर सत्यापित किया है और बिल्ड ठीक चलाता है। क्या इस बिल्ड को जारी करने में कोई मामला या चिंता है? –

11

आप की तरह देख सकते हैं।

+11

यदि आप एपीआई 18 या उच्चतर के साथ निर्माण कर रहे हैं, तो यह एक कंपाइलर त्रुटि देगा क्योंकि 'setPluginsEnabled' विधि अब मौजूद नहीं है। –

+16

सच - पहली बार आईव ने एक बहिष्कृत विधि को वास्तव में हटा दिया – Dori

+1

@Dori: इसे हटाया नहीं गया है, यह सिर्फ छिपा हुआ है: डी – Houcine

2

setPluginsEnabled लिए Android SDK 8 की तुलना में कम संस्करणों के लिए उपलब्ध है setPluginState - एसडीके < 18. यह 18 से अधिक संस्करणों के लिए depricated है के लिए है, और इसलिए हम उन्हें ऐसे ही ऊपर उल्लिखित SDK का उपयोग करने की आवश्यकता:

// Build.VERSION_CODES.FROYO = 8, Build.VERSION_CODES.JELLY_BEAN_MR2 = 18 

     if (Build.VERSION.SDK_INT < Build.VERSION_CODES.FROYO) { 
         webview.getSettings().setPluginsEnabled(true); 
     } 
     else if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR2){ 
         webview.getSettings().setPluginState(WebSettings.PluginState.ON); 
     }