android、webview、js交互
来源:互联网 发布:怎么做淘宝网页 编辑:程序博客网 时间:2024/05/17 14:15
不多说,直接上干货!1.使用webview对象的addJavascriptInterface方法2.addJavascriptInterface方法有两个参数,第一个参数就是我们一般会实现一个自己的类,类里面提供我们要提供给javascript访问的方法;第二个参数是访问我们在obj中声明的方法时候所用到的js对象,调用模式为window.interfaceName.方法名()或者是javascript: interfaceName.方法名() ;,如DemoWebView.addJavascriptInterface(new JavaScriptinterface(this), "android");3.编写JavaScriptinterface类,如有一个函数名为showToast()的方法4.在html中调用时的形式:javascript:android.showToast()。可以查阅:http://www.cnblogs.com/lee0oo0/archive/2012/08/01/2617953.html 写得很明白。android加载:DemoWebView = (WebView) findViewById(R.id.myWebView); DemoWebView.getSettings().setJavaScriptEnabled(true); DemoWebView.addJavascriptInterface(this, "demoAndroidObj");//将当前activity赋值给js中的window对象。 String htmlText = getFromAssets("test.html"); //把myWebView加载html DemoWebView.loadData(htmlText, "text/html", "utf-8"); DemoWebView.setWebViewClient(new myWebViewClient());js调用:<script type="text/javascript"> function Redirect(param1,param2,param3) { window.demoAndroidObj.Redirect(param1,param2,param3);}</script></head><body><input type="button" value="Say hello" onClick="Redirect('1','RedirectActivity','demo')" /></body></html>android回调:此回调由 demoAndroidObj 所对应的activity实现。public void Redirect(string type, String activityName, String demoNma) {Message message = new Message();message.what = redirectType;Bundle bundle = new Bundle();bundle.putString("type", type);bundle.putString("activityName",activityName);bundle.putString("demoName",demoName);message.setData(bundle);handler.sendMessage(message);}final Handler handler = new Handler() {@Overridepublic void handleMessage(Message msg) {Intent intent = new Intent();Bundle data = msg.getData();String type = data.getString("type");String activityName= data.getString("activityName");String demoName= data.getString("demoName"); intent.putExtra("type",type);intent.putExtra("demoName",demoName);startActivity(intent, activityName, true);window.demoAndroidObj.Redirect(param1,param2,param3);
这方法实际上调用的就是 activity中 public void Redirect(string type, String activityName, String demoNma)如此即可完成想要的交互效果。
0 0
- android WebView js 交互
- android webview js交互
- android、webview、js交互
- android webview js 交互
- android webview js 交互
- android webview js交互
- android js webview 交互
- android WebView js交互
- android webview 和 js交互
- Android WebView与JS交互
- Android WebView和JS交互
- webview 和android js 交互
- android webview 和 js交互
- Android WebView和JS交互
- Android webview与js交互
- android js和webview交互
- Android WebView与Js交互
- Android WebView与js交互
- PostgreSQL数据字典查询[持续更新]
- html5 ajax文件上传
- mysql全局权限账户%登录不上ERROR 1045 (28000): Access denied for user 'mhz'@'localhost' (using password: YES)
- linux下tomcat开启远程调试
- LinuxMint17.3Rosa下安装Apache流程
- android、webview、js交互
- android-studio快捷键(md格式)
- oracle 两种认证方式总结
- linux设备驱动归纳总结(三):1字符型设备之设备申请
- SQL Server日期计算(使用DATEADD和DATEDIFF函数)
- block
- [leetcode] One Edit Distance 解题报告
- Maven Basics
- IOS Apps 开发(Swift)(2)——Learn the Essentials of Swift(2)