最近不知为啥,公司提出要用webView,偷笑不止。在青软上课的时候学过这东西,是说条件比较紧张的时候可以拿来充数的,现在公司里手机端开发人员很多,做的好好的,放着原生ui不用,非要赶时髦搞什么WebView。想不到,想不到,他们居然都不知道怎么传参,哈哈哈。虽然清晰的记得有个大概,但是没谱的话我是不会说的,于是回来或复习或恶补了一下,做些笔记如下。
webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
上面是设置一些webView控件的参数。
穿参道jsp可以通过url,而返回值要麻烦点,除了上面的,还有:
webView.setWebChromeClient(new WebChromeClient()); webView.setWebViewClient(new WebViewClient());
这时候我们需要先做一个类备用:
public class QingsoftJS { private Context context; public QingsoftJS(Context context){ this.context = context; } @JavascriptInterface public void showMessage(String mes){ Toast.makeText(context, mes, Toast.LENGTH_LONG).show(); } }
主要是需要做方法的注解。然后通过webView对象的addJavascriptInterface方法,把这个对象绑定到一个js对象上,通过一个String类型的参数指定js对象名称。这样在jsp页面中就可以通过这个js对象调用被注解的方法,而这个方法是可以带参数的,于是我们可以通过这个接口做很多事情。
不可思议哦,通过js直接执行java代码了都,还要dwr做什么?其实我一开始想起来的不是这样子,好像是安卓有个后台监听什么的,完全想歪了,幸好没有开口不然丢人丢大了。不过方法绝对不是就这一种,谁说用socket自己写一套监听就绝对是行不通的?但是有现成的方法不用,我没必要这么拼,太傻太傻。
时间: 2024-11-05 11:28:53