Android和JS交互

本文详细介绍了如何在Android应用中通过WebView组件与JavaScript进行交互,并演示了如何加载本地asset文件、SD卡文件及data/data路径下的HTML文件。重点讲解了设置WebView属性、添加JavaScript接口以及WebView的监听回调方法。
Android通过webView和js交互
首先Android通过findById找到WebView
获取webview的Settings,设置字符集编码,启用javascript,并添加js交互接口类,
//找到webView
webView = (WebView) this.findViewById(R.id.webView);
// 设置字符集编码
webView.getSettings().setDefaultTextEncodingName("UTF-8");
// 开启JavaScript支持
webView.getSettings().setJavaScriptEnabled(true);
// 传递一个Java对象,同时给他命名,这个对象可以在js中调用这个对象的方法
webView.addJavascriptInterface(new MyObject(this, handler), "MyObject");

这样在webView中就可以调用MyObject这个类中的方法,调用方法为
javascript:MyObject.method();  或者
windows.MyObject.method(//传值)
Android调用webView中的方法是
webView.loadUrl("javascript:jsmethod()");

//设置webView的监听
webview.setwebViewClient(new webViewClient());
webViewClient是webview的监听类,自己最好继承然后自定义
其中最主要的有四个方法
1 onReceivedError 在页面出现错误的时候回调
2 onPageStarted 这个方法每次都会调用, 当页面开始加载时调用
3 onPageFinished 页面加载完成时调用
4 shouldOverrideUrlLoading 不是每次都执行,若执行则在2之前执行,第一次加载时不会调用,加载完成后,在页面上点击链接时才会调用此方法.

加载Android的asset文件夹下的html文件
// 加载assets目录下的文件
String url = "file:///android_asset/index.html";
webView.loadUrl(url);
//直接可以加载sd卡上文
webview.loadUrl("file:///mnt/sdcard/webview_demo/jsurvey/test.html" );
//直接可以加载data/data上文
webview.loadUrl("file:///data/data/com.smit.livevideo/files/iCastHtmlEngineAsset/test.html" );



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值