基本信息
源码名称:android 实现js交互(互相调用) 示例源码下载
源码大小:5.96M
文件格式:.zip
开发语言:Java
更新时间:2017-07-06
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
package jwzhangjie.com.webviewandjs;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.webkit.JavascriptInterface;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView)findViewById(R.id.webView);
initWebView();
}
private void initWebView(){
//设置编码
webView.getSettings().setDefaultTextEncodingName("utf-8");
//支持js
webView.getSettings().setJavaScriptEnabled(true);
//设置监听事件
webView.setWebViewClient(new JieWewViewClient());
//设置本地调用对象及其接口
webView.addJavascriptInterface(new JavaScriptObject(getApplicationContext()), "toAndroid");
//载入js
webView.loadUrl("file:///android_asset/index.html");
}
public void javaCallJsNoParams(View view){
webView.loadUrl("javascript:javaCallJsNoParamsMethod()");
}
public void javaCallJsHasParams(View view){
webView.loadUrl("javascript:javaCallJsHasParamsMethod('" 123 "')");
}
public class JavaScriptObject {
Context mContxt;
public JavaScriptObject(Context mContxt) {
this.mContxt = mContxt;
}
@JavascriptInterface //sdk17版本以上加上注解
public void jsCallJavaNoParams() {
Toast.makeText(mContxt, "Js调用Java方法(无参)", Toast.LENGTH_LONG).show();
}
@JavascriptInterface //sdk17版本以上加上注解
public void jsCallJavaHasParams(String params) {
Toast.makeText(mContxt, "Js调用Java方法(有参):" params, Toast.LENGTH_SHORT).show();
}
}
class JieWewViewClient extends WebViewClient{
/**
* 如果紧跟着
* webView.loadUrl("file:///android_asset/index.html");
* 调用Js中的方法是不起作用的,必须页面加载完成才可以
*/
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
webView.loadUrl("javascript:javaCallJsHasParamsMethod('" 123 "')");
}
}
}