android proguard webview javascript interface

在Android项目中,使用WebView结合JavaScript交互,遇到签名打包后JS失效的问题,原因是Proguard配置不当。解决方案是在Proguard配置文件中加入`-keepclassmembers class * { @android.webkit.JavascriptInterface <methods>; }`。这将确保JavaScript接口不受混淆,保持其功能正常。
摘要由CSDN通过智能技术生成

项目中使用WebView + Javascript 相互使用时,在签名打包后发现,js无效,问题就是proguard造成的。

解决方法如下:

-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}

WebView的简单使用如下:

webView = (WebView) findViewById(R.id.webview);
		// WebSettings 设置JavaScript激活
		webView.getSettings().setJavaScriptEnabled(true);
		// 指定和Javascript交互的对象和别名
		webView.addJavascriptInterface(new WebAppInterface(taskContent), "Android");
		// url请求,可以访问本地资源,也可以动态
		// webView.loadUrl("file:///android_asset/html/task_details_client.html");
		webView.loadUrl(http://www.baidu.com);


 

private class WebAppInterface {
		
		public String taskContent;
		
        WebAppInterface(String taskContent) {
            this.taskContent = taskContent;
        }
        
        @JavascriptInterface
        public String getContent() {
            // javascript 交互的方法
            return taskContent;
        }

	}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值