关于安卓开发webview与js交互的问题

来源:互联网 发布:注销淘宝店铺重新开通 编辑:程序博客网 时间:2024/04/30 14:43

前段时间开发项目,用到了webview和js的交互,我这边只是实现了APP接受js返回的信息,废话不多说直接上代码。


WebView
wbReportContent = (WebView) findViewById(R.id.wbReportContent);
wbReportContent.setWebViewClient(new WebViewClient() {    @Override    public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {        handler.proceed();//即可忽略SSL证书错误,继续加载页面。这个地方是我没有https的证书,只能选择绕过,如果你用的是http交互的话请注释这行    }});WebSettings webSettings = wbReportContent.getSettings();webSettings.setSavePassword(false);webSettings.setSaveFormData(false);webSettings.setJavaScriptEnabled(true);webSettings.setSupportZoom(false);wbReportContent.getSettings().setDefaultTextEncodingName("UTF-8");wbReportContent.setWebChromeClient(new WebChromeClient());wbReportContent.addJavascriptInterface(new DemoJavaScriptInterface(UniversalHtmlActivity.this, null), "mobile")//重点在这里:在
DemoJavaScriptInterface中写你和js订好的接口
/** * 接收js返回的信息 */public class DemoJavaScriptInterface {    private Context context;    private Handler handler;  public DemoJavaScriptInterface(Context context, Handler handler) {      this.context=context;      this.handler=handler;    }    /**     * This is not called on the UI thread. Post a runnable to invoke     * loadUrl on the UI thread.     */    @JavascriptInterface    public void timeOut() {//timeOut是你和js定好的方法,必须是定好的,不然接收不到       //你要干的事情    };
其实这个网上已经有很多这个例子了,我只是简单易懂的在说一下!


1 0