我以前在我的移动应用程序上有一个javascript界面,允许我从我的webview中捕获数据回到以前的应用程序,但是最近当我升级应用程序来处理棒棒糖时,它开始遇到有关javascriptInterface的问题
这是我当前的javascriptInterface代码:
webView = (WebView)findViewById(R.id.webView);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.setWebChromeClient(new WebChromeClient());
webView.setWebViewClient(new MyBrowser());
webView.getSettings().setBuiltInZoomControls(false);
webView.addJavascriptInterface(new WebAppInterface(this), "Android");
webView.getSettings().setJavaScriptEnabled(true);
webView.setHorizontalScrollBarEnabled(false);
@JavascriptInterface
public boolean doSomething(String employeeID){
RunSearch(employeeID);
Log.d("runsearch", "running search");
return true;
}
public class WebAppInterface {
Context mContext;
WebAppInterface(Context c) {
mContext = c;
}
}
我的网页存储在本地
错误说:
添加的界面中的所有方法都没有注释 @ android.webkit.JavascriptInterface;它们在API中不可见 17
我查看了文档但是我该怎么做才能使它与Jelly Bean和更高版本一起使用?
答案 0 :(得分:3)
问题是您没有在WebAppInterface中公开任何可调用的方法。我从注释中假设您希望公开doSomething
方法?如果是这样,只需将其移动到界面中即可。
public class WebAppInterface {
Context mContext;
WebAppInterface(Context c) {
mContext = c;
}
@JavascriptInterface
public boolean doSomething(String employeeID){
RunSearch(employeeID);
Log.d("runsearch", "running search");
return true;
}
}