关于WebView的复习

最近不知为啥,公司提出要用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自己写一套监听就绝对是行不通的?但是有现成的方法不用,我没必要这么拼,太傻太傻。

原文地址:https://www.cnblogs.com/ooj88s/p/5648536.html