2013-10-14 56 views
20

我想在web視圖播放HTML5視頻,需要setPluginsEnabledsetPluginsEnabled不存在的WebView

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

的函數,因爲API級9 WebView.getSettings().setPluginsEnabled();方法已被棄用,並在API級18除去可以使用將其在API級別8加入較新的功能WebView.getSettings().setPluginState(WebSettings.PluginState.ON);並在API級別18中被棄用。根據WebSettings Documentation超過18的API級別將不支持插件;我假設是因爲支持的主要插件是Flash,哪個Adobe不再爲移動開發。

+0

我一直在我的應用程序中使用WebView.setPluginsEnabled()和targetSdkVersion 17(已經在playstoe中)。現在,我即將發佈具有一些新功能的更新版本。我已經設置了targetSdkVersion 19,但是我已經用android build target 4.2.2成功編譯了它。我已經驗證了各種版本,並且構建運行良好。發佈此版本是否有任何情況或擔心? –

11

您可以檢查,如:

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

希望這有助於。

+11

如果您使用API​​ 18或更高版本構建,由於'setPluginsEnabled'方法不再存在,這會導致編譯器錯誤。 –

+16

true - 第一次我看到一個被棄用的方法實際上被刪除 – Dori

+1

@Dori:它不會被刪除,它只是隱藏:D – Houcine

2

setPluginsEnabled是供小於8的Android SDK版本,setPluginState - 爲SDK < 18。depricated比18以上版本,因此我們需要使用它們只爲唯一的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); 
     }