@JavascriptInterface无法解析

时间:2013-01-16 07:10:03

标签: javascript android webview android-4.2-jelly-bean

我正在与Android合作,让网页与我的应用互动。因此,我已经完成了文档和教程,最终提出了this site。在其中,开发人员列出了在您希望WebView可以访问的任何函数之前应该包含@JavascriptInterface,如果没有它,Jelly Bean将无法识别该函数。

我的问题是,当我把它放入时,我收到一个错误说:

  

@JavascriptInterface无法解析为类型

没有它,我的代码编译并正常工作,但我希望Jelly Bean兼容。我目前正在使用Android 1.6作为基础,所以它没有@JavascriptInterface吗?这是Jelly Bean特有的东西,这意味着我必须专门为Jelly Bean制作一个程序吗?任何帮助将不胜感激。这是我完整的界面类:

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

}

3 个答案:

答案 0 :(得分:37)

@JavascriptInterface在JellyBean中引入。

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

从Eclipse IDE转到  Project->Properties。  选择Android并设置目标

APK适用于旧版本的Android。

答案 1 :(得分:20)

您需要添加以下内容:

import android.webkit.JavascriptInterface;

Check the sample here:

答案 2 :(得分:0)

针对Android Studio用户的步骤:

  1. 检查build.gradle中的minSdkVersion是否为17或更高
  2. 添加import android.webkit.JavascriptInterface;