您的位置:首页 > 移动开发

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

2016-02-23 17:33 573 查看
前段时间开发项目,用到了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.*/@JavascriptInterfacepublic void timeOut() {//timeOut是你和js定好的方法,必须是定好的,不然接收不到//你要干的事情};
其实这个网上已经有很多这个例子了,我只是简单易懂的在说一下!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: