1 Star 0 Fork 0

方志朋 / JavaScriptConnAndroid

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

JavaScriptConnAndroid

最近在做原生和js端的互调的功能,自己改了个demo,给大家讲解下。 先上js代码

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>方法调用基本流程测试</title>
</head>
<body>
<div id="helloweb"> 
	<div id="echoInfo">如果有数据返回,会显示在这儿</div>
	</div>
	<script type="text/javascript">
	
	function funFromjs(){
    	document.getElementById("helloweb").innerHTML="HelloWebView,i'm from js";
    }
		function echoInfo( container, obj ){
			var domContainer = document.getElementById('echoInfo');
			domContainer.innerHTML = JSON.stringify( obj );
		}

		//function windowCallback( str ){
			//echoInfo( 'echoInfo', str );
		//}

		 window.windowCallback = function( str ){
		 	echoInfo( 'echoInfo', str );
		 };

		var MfsJSBridge = MfsJSBridge || undefined;
		if( undefined != MfsJSBridge ){

			//看这里
			var params = {
				id : 1,
				name : '测试'
			};

			var strParams = JSON.stringify( params );

			MfsJSBridge.invoke( 'testFunc', strParams, 'windowCallback');

		}else{
			alert('未定义MfsJSBridge');

		}

	</script>

</body>
</html>

android webview 设置可用javascript

//设置编码
 mWebView.getSettings().setDefaultTextEncodingName("utf-8");
 //支持js
mWebView.getSettings().setJavaScriptEnabled(true);

android 调js

mBtn1.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
              mWebView.loadUrl("javascript:funFromjs()");//其中funFromjs()为js的方法
              Toast.makeText(mContext, "调用javascript:funFromjs()", Toast.LENGTH_LONG).show();
            }
        });

js调原生,原生响应时间并回调数据


 mWebView.addJavascriptInterface(new Object(){
        	//注意4.4以后加注解,位置在这个方法名上面,鉴于很多这个的例子,瞎、、写注解位置,并需要下                        //载积分写了这个
	        @JavascriptInterface
            public void invoke(String name ,String t,String callback) {
            	if(name.equals("testFunc")){ 
            	//其中t 为js带过来的数据          
            		Toast.makeText(mContext, t,Toast.LENGTH_LONG).show();
            		
            		String strJson = "{\"code\":122, \"msg\":\"1231\", \"data\":null}";

            		//回调数据给js 其中callback 为android 掉js 的方法名称。
            		mWebView.loadUrl("javascript:"+ callback +"('" + strJson + "')");
            	}
              //  Toast.makeText(mContext, name, Toast.LENGTH_LONG).show();
                
            }
        },"MfsJSBridge");

代码比较简单,最主要的是 @JavascriptInterface注解的位置大家注意下。

源码下载

我的微信公众号,欢迎大家扫一扫。 图片名称

空文件

简介

暂无描述 展开 收起
Java
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/forezp/JavaScriptConnAndroid.git
git@gitee.com:forezp/JavaScriptConnAndroid.git
forezp
JavaScriptConnAndroid
JavaScriptConnAndroid
master

搜索帮助