2013-01-16 171 views
16

我正在與Android合作,使網頁與我的應用進行交互。因此,我已經閱讀了文檔和教程,最後得到了this site。在其中,開發人員列出您應該在任何希望可通過WebView訪問的功能之前包含@JavascriptInterface,並且如果沒有它,Jelly Bean將無法識別該功能。@JavascriptInterface無法解析

我的問題是,當我把在,我得到一個錯誤說:

@JavascriptInterface不能被解析爲一個類型

沒有它,我的代碼編譯並運行正常,但我想要Jelly Bean的兼容性。我目前正在使用Android 1.6作爲基礎,所以它只是沒有@JavascriptInterface?這是一個果凍豆的具體事情,這意味着我將不得不專門爲果凍豆做一個程序?任何幫助將不勝感激。這裏是我的完整接口類:

import android.content.Context; 

public class WebAppInterface{ 

    Context mContext; 

    /** Instantiate the interface and set the context */ 
    WebAppInterface(Context c) { 
     mContext = c; 
    } 

    /** Show a toast from the web page */ 
    //needed for jelly bean 
    @JavascriptInterface 
    public void turnOff() { 
     MyAlarmPopup.turnOff(); 
    } 

} 

回答

36

@JavascriptInterface在JellyBean中引入。

您需要的項目構建目標設爲API等級17

從Eclipse IDE中,去 Project->Properties。 選擇Android並設置目標

該APK將在舊版本的Android上工作。

+0

這是正確的。現在和我一起工作很好。謝謝.. – Nimmy

+2

@nimmy我怎麼能做到這一點的API級別較低? –

19

你需要補充一點:

import android.webkit.JavascriptInterface; 

Check the sample here:

+1

只有當我們將目標設置爲API級別17(如上面的答案)時,才能使用此功能。 – Prateek