android向JS传递数组的问题

勍勍勍 2016-06-14 10:56:01
String[] hzl_array={"1","22","3","1","2","3"};
这个是android向JS传递的数组,这种格式是可以的 但是把数字变成字母就获取不到了。
就类似与把上面的数组改变成 String[] hzl_array={"a","a22","a3","1","2","3"}; JS那边就获取不到了是为什么。

这是通过WebView向JS传递的方法
counterwebview.loadUrl("javascript:set_hzldata('"+Arrays.toString(hzl_array)+"')");

下面是Js接收或的方法
function set_hzldata(Array){
var HZL_Array1= eval(Array);
HZL_Array1.reverse();
for(var i=0;i<HZL_Array1.length;i++){
$("#HZL_tbeTarget").prepend('<tr><td><b>T'+HZL_Array1[i]+'</b></td></tr>');
};
}

求大神们告诉我 为什么数组里面是数字就可以得到 有字母或汉字就不行。
...全文
543 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
网易云捕 2016-06-14
  • 打赏
  • 举报
回复
通过java向js中传递数组,楼主的这个方式是错误的。代码在 var HZL_Array1= eval(Array);这一句抛异常了,修改后的版本

function set_hzldata(Array){
		try {
			tmpstr = JSON.stringify(Array);
			substr = tmpstr.substring(2,tmpstr.length-2);
			HZL_Array1 = substr.split(',');
			HZL_Array1.reverse();
			for(var i=0;i<HZL_Array1.length;i++){
				 $("#HZL_tbeTarget").prepend('<tr><td><b>T'+HZL_Array1[i]+'</b></td></tr>');
			};
		}catch(exception) {
			alert(exception);
		}
	}	
建议java和js之间传递数组可以使用json更好。

80,490

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧