Javascript界面​​在发行版中不起作用

时间:2019-04-16 20:35:47

标签: javascript android jenkins webview release-builds

我有一个带有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,但没有帮助。

如何使其在发行版本中起作用?

1 个答案:

答案 0 :(得分:0)

公开使用接口方法解决了该问题

public void buttonClick() {
        listener.onButtonClicked();
    }
  

如果您将targetSdkVersion设置为17或更高,则必须添加   @JavascriptInterface批注要使用的任何方法   到您的JavaScript(该方法还必须是公共的)。   https://developer.android.com/guide/webapps/webview#BindingJavaScript

相关问题