2013-04-25 33 views
1

我正在構建一個必須與api 14和更新版本兼容的android應用程序。我在JavaScript界面​​中有1個方法。使javascript注入與api兼容16

從api 17開始,你必須在方法@JavascriptInterface上添加一個註釋,但註解不支持向後的api,因爲應用程序是api的目標14我得到一個錯誤。但是,如果我不添加註釋,那麼在Android 4.2中不會觸發JavaScript。

如果deviceOs比4.2更新,是否可以做出ifdef類型?

回答

1

將您的構建目標設置爲API級別17.將您的android:minSdkVersion設置爲您想要支持的Android的舊版本。然後您的代碼將編譯將具有@JavascriptInterface註釋。 Lint會在你的代碼中指出你使用的類,方法等比你的android:minSdkVersion更新的地方,這樣你就可以確保你做得正確。

或者,將您的android:targetSdkVersion設置爲16或更低,在這種情況下@JavascriptInterface不是必需的。見http://developer.android.com/guide/webapps/webview.html#BindingJavaScript

+0

看起來像一個很好的解決方案。我現在已經將targettSdkVersion設置爲14,並且沒有'@ JavascriptInterface',但是不會觸發javascript方法。所以我會嘗試你的第一個選擇。謝謝。 – lagos 2013-04-26 08:03:58