我有一个带有Javascript界面的Webview
public class WebAppInterface {
@JavascriptInterface
void buttonClick() {
listener.onButtonClicked();
}
}
这就是它添加到视图的方式
webView.addJavascriptInterface(new WebAppInterface(), "Android");
在调试版本中,侦听器正在工作。
在詹金斯(Jenkins)制作的发行版本中,它不起作用。
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "terminal_${variant.versionName}.apk"
}
}
}
}
它不应该与Proguard相关,因为minify已禁用。
我还是尝试了不同的Proguard settings,但没有帮助。
如何使其在发行版本中起作用?
答案 0 :(得分:0)
公开使用接口方法解决了该问题
public void buttonClick() {
listener.onButtonClicked();
}
如果您将targetSdkVersion设置为17或更高,则必须添加 @JavascriptInterface批注要使用的任何方法 到您的JavaScript(该方法还必须是公共的)。 https://developer.android.com/guide/webapps/webview#BindingJavaScript