Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript WebView don';在JS中使用按钮进行t响应_Javascript_Android_Webview - Fatal编程技术网

Javascript WebView don';在JS中使用按钮进行t响应

Javascript WebView don';在JS中使用按钮进行t响应,javascript,android,webview,Javascript,Android,Webview,我想加载一个嵌入JS代码的webView,然后我想点击webView中的一个按钮,它可以从服务器获取一些参数,然后回调我的android方法。 我在测试环境中尝试了它(只是作为AndroidApplication运行),它工作得很好,但是当我用我的密钥库签署了一个apk,但它不工作时,单击事件没有响应,我认为这是因为proguard.ctf中存在一些问题,但我不知道具体原因,并且我的proguard.ctf中有一些关于webView的代码 -keep class android.webkit.J

我想加载一个嵌入JS代码的webView,然后我想点击webView中的一个按钮,它可以从服务器获取一些参数,然后回调我的android方法。 我在测试环境中尝试了它(只是作为AndroidApplication运行),它工作得很好,但是当我用我的密钥库签署了一个apk,但它不工作时,单击事件没有响应,我认为这是因为proguard.ctf中存在一些问题,但我不知道具体原因,并且我的proguard.ctf中有一些关于webView的代码

-keep class android.webkit.JavascriptInterface.** {*;}
-keep public class android.webkit.WebViewClient
-dontwarn android.webkit.WebView
-dontwarn android.net.http.SslError
-dontwarn android.webkit.WebViewClient

所以谢谢。

你确定你因为proguard而出错了吗?是的,现在我已经修复了它,js代码调用我的android方法,我创建了一个包含两个方法的内部类供js代码回调,可能这个方法在我的应用程序中不调用,所以当我签署apk时,它会proguard,所以js找不到它,解决方案是添加以下代码:-将类com.mypackage.activity.MyActivity$DemoJavaScriptInterface{public;public;}保留在解决方案添加的位置?将您的解决方案作为答案发布。我在活动中创建了一个名为DemoJavaScriptInterface的内部类,其中有两个方法用于回调。我在签署apk时避免对它们进行预保护,我在proguard.ctf中添加了代码:
-keep class com.mypackage.Activity.MyActivity$DemoJavaScriptInterface{public;public;}