Android Java和JavaScript代码相互调用

来源:互联网 发布:菜鸟裹裹抢单软件 编辑:程序博客网 时间:2024/05/16 10:42

在Android中实现Java和Js交互,通常只需要以下几步,
1.WebView开启JavaScript脚本执行
2.WebView设置供JavaScript调用的交互接口
3.客户端和网页端实现调用的接口

JAVA

    private WebView mWebView;    private JSInterface mInterface;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mInterface = new JSInterface();        mWebView = (WebView) findViewById(R.id.webview);        mWebView.getSettings().setJavaScriptEnabled(true);        mWebView.setWebViewClient(new WebViewClient());        mWebView.setWebChromeClient(new WebChromeClient());        mWebView.addJavascriptInterface(mInterface, "EventJavascriptInterface");        mWebView.loadUrl("http://XXXXXXXXX/js-call-1.html");    }    //Java调用JavaScript    public void callJSButton(View v){        String para1 = "Para1";        int para2 = 2;        boolean para3 = true;        mWebView.loadUrl(String.format("javascript:testJavaCall(\"%s\",%s,%s)",                para1,para2,para3));    }    public void refreshButton(View v){        mWebView.reload();    }

Interface

public class JSInterface {    @JavascriptInterface    public void testJSCall(){        Log.e("Test","testJSCall");    }    @JavascriptInterface    public void testJSCall(String para){        Log.e("Test","testJSCall para = "+para);    }    @JavascriptInterface    public String testJSCall1(){        return "This is a test";    }}

HTML

<html><head><meta http-equiv="Content-Type" content="text/html;charset=utf-8"><script type="text/javascript">function callJAVA(){    alert(window.EventJavascriptInterface.testJSCall1());}function testJavaCall(arg1,arg2,arg3){     alert("testJavaCall: arg1="+arg1+", arg2="+arg2+", arg3="+arg3);}</script></head><body>This is my test html <br/><br/><a onClick="javascript:window.EventJavascriptInterface.testJSCall()" >点击调用java函数</a><br/><a onClick="javascript:EventJavascriptInterface.testJSCall('hello world')" >点击调用java函数并传递参数</a><br/><a onClick="callJAVA()" >点击调用java函数并返回结果</a><br/><br/></body></html>
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 美容店没人进店怎么办 新店开业招不到营业员怎么办 无意开通了花呗怎么办? 花呗灰色用不了怎么办 花呗逾期用不了怎么办 店铺花呗关闭了怎么办 花呗无法使用了怎么办 借呗自动关闭了怎么办 蚂蚁花呗无法开通怎么办 花呗本月还不了怎么办 蚂蚁借呗没钱还怎么办 淘宝账号被限制登录怎么办 辱骂买家被投诉骚扰怎么办 淘宝卖家骚扰买家怎么办 被淘宝卖家电话骚扰怎么办 闲鱼卖东西买家退货运费怎么办 淘宝被恶意拍单怎么办 炒作信用度评价被删除怎么办 删除淘宝评价之后卖家不返现怎么办 美团客户给差评怎么办 淘宝卖家评价差怎么办 淘宝卖家发货未揽收怎么办 周不过5我超过了怎么办 淘宝申请退款后卖家不确认怎么办 淘宝直通车b类扣12分怎么办 淘宝店铺被买家投诉怎么办 淘宝店铺遭买家投诉怎么办 淘宝店铺被买家恶意投诉怎么办 苹果手机无法识别指纹怎么办 淘宝店铺虚假交易违规怎么办 斗鱼直播太卡怎么办 神笔添加视频尺码不符合怎么办 闲鱼卖家单号填错了怎么办 户户通没有信号强度怎么办 全民k歌qq登不上怎么办 手机直播没电了怎么办 淘宝退货卖家拒收怎么办 充的会员卡店家关门了怎么办 淘宝手机号码被注册了怎么办 淘宝不支持七天无理由退货怎么办 微信视频横屏怎么办