19

我正在使用 Android 使网页与我的应用程序交互。因此,我浏览了文档和教程并最终创建了这个站点。在其中,开发人员列出了您应该@JavascriptInterface在您希望 WebView 可以访问的任何功能之前包含的列表,如果没有它,Jelly Bean 将无法识别该功能。

我的问题是,当我把它放进去时,我收到一条错误消息:

@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();
    }

}
4

3 回答 3

37

@JavascriptInterface在 JellyBean 中引入。

您需要将项目构建目标设置为 API 级别 17

在 Eclipse IDE 中,转到 Project->Properties. 选择Android并设置目标

该 APK 将适用于旧版本的 android。

于 2013-02-02T00:59:27.130 回答
21

你需要添加这个:

import android.webkit.JavascriptInterface;

在此处查看示例:

于 2013-02-21T06:13:54.353 回答
0

Android Studio 用户的步骤:

  1. 检查 build.gradle 中的 minSdkVersion 是否为 17 或更高
  2. 添加import android.webkit.JavascriptInterface;
于 2018-07-18T07:43:59.153 回答