我正在使用一个 webview 并想加载一个 JScode 以在该 webview 中显示。但是我在 API16 以上遇到了问题。它从不加载 JS 页面。它给我一个错误:
这是我的代码:
@JavascriptInterface
public void loadWebviewUrl(){
Map <String, String> extraEncryptionHeaders = new HashMap<String, String>();
extraEncryptionHeaders.put("X-APP-DEVICETYPE", "ANDROID");
appVersionname=CommonMethods.getAppVersion(WebPayUActivity.this);
extraEncryptionHeaders.put("X-APP-APPVERSIONNAME", appVersionname);
extraEncryptionHeaders.put("X-DEVICE", Constant.ANDROIDID);
extraEncryptionHeaders.put(Constant.HEADER_SECURITY_KEY, Constant.SECURITY_HASH_VALUE);
mWebView.loadUrl(mPayUrl, extraEncryptionHeaders);
**//getting error in this line that has been mentioned above**
mWebView.addJavascriptInterface(new Wscript(WebPayUActivity.this),
"Android");
screenDpi=CommonMethods.getResoltuion(this);
mWebView.setWebViewClient(new MyWebViewClient(this));
mImageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
customAlertDialog();
}
});
mWebView.setWebChromeClient(new WebChromeClient());
}
在阅读不同站点的解决方案后,我开始知道添加注释。但是写完注解,还是报错。
任何人都可以检查并帮助我吗
谢谢
最佳答案
你必须添加
@SuppressLint("JavascriptInterface")
到您使用 webView 对象的公共(public)方法。
关于java - 添加接口(interface)中的方法都没有注解@android.webkit.JavascriptInterface;它们在 API 17 中不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28293545/