webview的JS交互
来源:互联网 发布:apache 字段长度 编辑:程序博客网 时间:2024/04/30 13:21
1、在android项目中,用webview加载html是经常出现的,如果html的内容无法响应application的话,那将会出现很多局限性,所以就有了webview与JS的交互,首先,是activity里面的webview与JS交互。在activity中为webview添加支持JS的代码:
webview.getSettings().setJavaScriptEnabled(true);
然后给webview指定一个方法,供html调用,其中,open_view就是一个标识符,html识别app的标识符。
webview.addJavascriptInterface(DetailChoose.this, "open_view");
然后在activity中写一个方法,method也是一个标识符,可供html调用,str1是html传过来的参数,href是定义在html里面的,给app识别的标识符,然后在activity中响应html的动作跳转activity,并将str2传到另一个activity中,完成JS交互跳转activity的功能。
public void method(String str1) { String str2 = "http://www.baidu.com" + str1; Intent intent = new Intent(); intent.putExtra("href", str2); intent.setClass(DetailChoose.this, Goodsdetail.class); startActivity(intent); }
在JS中添加以下代码,.open_view是html里面的a标签,给a标签一个点击事件并执行app的函数,同时传参数。
if_open = typeof(open_view); if(if_open != "undefined") { $('.open_view').click(function(){ open_view.method($(this).attr('href')); return false; }) }
最后记得在html中加上JS,即,
<script type="text/javascript" src="js/js.js"></script>
2、但一个界面不仅仅只有一个界面时,而是需要在一个activity里面切换多个界面时,则可以在activity里面添加多个fragment,然而,fragment虽然依赖与activity,但是却有着自己的生命周期,fragment中加载webview的JS交互不同与activity的JS交互,但是也大同小异。
在activity中写一个函数:
public void show(final int i) { new Handler().postDelayed(new Runnable() { @SuppressLint("NewApi") @Override public void run() { switch (i) { case 0: webview = (WebView) synthesizeFragment.getView().findViewById(R.id.webview); webview.getSettings().setJavaScriptEnabled(true); webview.addJavascriptInterface(ThreeActivity.this, "open_goods"); break; case 1: webview1 = (WebView) chooseFragment.getView().findViewById(R.id.webview); webview1.getSettings().setJavaScriptEnabled(true); webview1.addJavascriptInterface(ThreeActivity.this, "open_goods"); break; default: break; } } }, i); }
这里需要用到子线程,不然会报错,fragment与activity不同的是需要在activity找到fragment中的控件,找到控件之后,其他的交互的跟activity一样,记得线程最后得用i而不能用0。然后将这个方法写在每个fragment实例化之后,用show(i);的方式。
- webview的JS交互
- webview和js的交互
- WebView与js的交互
- js与webView的交互
- webView 网页 的JS交互
- webview和js的交互
- webview js之间的交互
- WebView 与 JS 的交互
- webView 与 JS 的交互
- Anroid WebView的js交互
- webView 和Js的交互
- WebView与Js的交互
- webview与js的交互
- js和webview的交互
- Android WebView 与JS的数据交互
- Android WebView 与JS的数据交互
- Android 的webview与js交互
- ios webview与JS的交互
- GitHub 优秀的 Android 开源项目
- You-get 下载 youku,tudou和其他网站的视频
- 【Java安全技术探索之路系列:Java可扩展安全架构】之三:JCA(二):JCA类和接口
- 关于 内存分配函数的几点问题?
- 处理unity文档打开慢的问题
- webview的JS交互
- RHEL6:lvs_nat
- 拨开云雾,遇见灿烂的阳光
- 监控SharePoint效率之(二) –查看使用报告
- Elasticsearch集群搭建
- Linux Trap命令
- window.print 页面打印
- 应用程序内置资源实现换肤功能
- Js初学笔记之<创建对象的五种方式>