HTML中<Javascript>与activity之间的交互

原创 2015年11月17日 21:37:28

在android中有时用到HTML所写的文件布局时,为了使其产生交互,因此在HTML中定义<script>使其达到交互的效果

首先利用web布局在xml中定义webview控件:

<span style="font-size:14px;"><WebView android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/webview_one"/></span>

在activity中引入:

<span style="font-size:14px;"><span style="white-space:pre">		</span>mWebView = (WebView) findViewById(R.id.webview_one);
		//第一步,设置webview可操作
		WebSettings webSettings = mWebView.getSettings();
		webSettings.setJavaScriptEnabled(true);
		//第三步,添加Javascript接口
		mWebView.addJavascriptInterface(new MyWebView(), "musicServiceInterfaceName");  //<span style="font-family: Arial, Helvetica, sans-serif;">musicServiceInterfaceName与<script>中window点后保持一致</span>

		 
		mWebView.loadUrl(url);    //String url = "http://192.168.1.132:8080/test/getmarry.html";  自定义HTML路径
	}
	
	/* 第二步
	 * 自定义一个activity与HTML交互类“musicServiceInterfaceName”和所使用方法
	 * */
	public class MyWebView{
		/*
		 * 界面交互,此方法与HTML中调用方法保持一致
		 * */
		public void playMusic(){
			Toast.makeText(MyWebViewActivity.this, "播放成功", Toast.LENGTH_SHORT).show();
		}
		
		/*
		 * 界面交互,此方法与HTML中调用方法保持一致
		 * */
		public void startGridViewHttp(){
			startActivity(new Intent(MyWebViewActivity.this, TestRelative.class));
		}
	}</span>

HTML中文件:下面在<head>标签下

<span style="font-size:14px;"><script>
		
		
		function myOnClick(){             //定义调用方法
			
			window.musicServiceInterfaceName.playMusic();      //<span style="font-family: Arial, Helvetica, sans-serif;">playMusic()为activity中调用方法(下面相同)</span>

		}
		function startGridView(){
			window.musicServiceInterfaceName.startGridViewHttp();
		}
		
		
		function nativeToJs(){
			var url = window.musicServiceInterfaceName.jsToNativeGetParameter(); //返回http://it.warmtel.com 
			window.location.href=url; //跳转到指定url
		}

		
		function toHttpWeb(){
			window.location.href="http://blog.warmtel.com";
		}
		
	</script></span>
在<body>标签中:

<span style="font-size:14px;"><div class="wrapcontain" style="width: 300px;padding: 10px;padding-top: 0px;margin: 0 auto;background-color:#680011;">

			<div class="topimg" >
				<img class="p2" src="./img/index_top_bg.png"/>
				<img class="p1" src="./img/index_microphone.png" onclick="myOnClick()"/>     <span style="font-family: Arial, Helvetica, sans-serif;"><!-- 设置点击事件    当点击时调用activity中playMusic方法--></span>

			
				<h3 class="sp">
					<p id="sp11" class="sp1">xxx</p>
					<p class="sp2">
						还有<span class="sp3">35</span>天
					</p>
				</h3>
			</div>
		
			<div class="imgshow">
				<img src="./img/index_yaoqinghan.png" onclick="startGridView()"/>   <!-- 设置点击事件 -->
			<img src="./img/index_zhufuqiang.png" /> 
			<img src="./img/index_yaoyiyao.png" /> 
			<img src="./img/index_hunsha.png" />

			</div>
			
			<p class="footer">
			<a href="###">xxx<img
				src="./img/redRightarrow.png" /></a>

			</p>
			
		</div></span>





四大组件Activity之两个Activity之间的交互

这个例子相对简单,是在一个Activity中使用按钮调用另一个Activity. 第一个Activity; 使用Intent 对象绑定两个Activity,并使用StartActivity启动另一个A...
  • xiaoleiacm
  • xiaoleiacm
  • 2015年11月22日 16:18
  • 463

详解Fragment跟Activity之间的通信

大家好.Fragment现在越来越广泛了,中文翻译为碎片,下面我就就碎片代替了,当时谷歌出碎片的原因是因为Android设备屏幕大小不统一,碎片出来了.用一套APP就可以解决平板跟手机上的UI问题.对...
  • u011310942
  • u011310942
  • 2014年07月21日 14:17
  • 3178

安卓学习记录(一)activity间信息交互的四种方式

第一种:借助Application的属性传递信息
  • zuolovefu
  • zuolovefu
  • 2014年11月04日 18:33
  • 1705

Android系统应用---SystemUI之一:SystemUI概述和创建启动流程分析

SystemUI概述 自android2.2开始,原本存在与framework-res.apk中的状态栏和下拉通知栏界面控制被分割出一个单独的apk文件,命名为SystemUI.apk,保存在Syst...
  • weilaideta
  • weilaideta
  • 2016年07月03日 22:42
  • 1117

Activity和Service的交互方式

在开发过程中,经常会遇到Activity和Service进行相互通信、交换数据的需要,最常见的比如音乐播放器,使用Service在后台进行音乐播放,前台使用Activity显示界面,点击前台控件后需要...
  • zh175578809
  • zh175578809
  • 2017年06月04日 02:31
  • 956

Activity之间的数据交互基础篇(数据较多时)

Activity之间的数据交互基础篇(数据较多时) Activity除了上篇中所讲到的传递一些基本信息,还可以进行数据较多的传递。 1、传递javabean信息 当有好多变量需要传递的时候,可以...
  • xgangzai
  • xgangzai
  • 2016年11月19日 12:14
  • 2777

Fragment之间的实时交互

fragment之间的通信可以使用:广播、Bundle、回调等。 1、我们这里讲述的是当一个activity中包含了两个Fragment,让这两个fragment进行实时交互的话,可以使用广播和回调...
  • lihui_92_11_11
  • lihui_92_11_11
  • 2015年04月07日 11:37
  • 569

javascript与浏览器的数据交互

1.从浏览器中获取数据 2.向浏览器中s
  • seacean2000
  • seacean2000
  • 2014年10月28日 22:12
  • 568

Android中 Webview中js与Activity的交互

项目中遇到需要webview与activity的交互
  • kevinlinkai
  • kevinlinkai
  • 2014年05月24日 19:18
  • 1499

QT通过JS与HTML的交互

头文件加入QT += core gui webenginewidgets webchannel通过QWebChannel与JS交互 原理 QWebEnginePage *page =...
  • me_badman
  • me_badman
  • 2017年02月08日 16:54
  • 2414
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HTML中<Javascript>与activity之间的交互
举报原因:
原因补充:

(最多只允许输入30个字)