package com.atguigu.androidandh5;
import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
/**
* 作者:尚硅谷-杨光福 on 2016/7/28 11:19
* 微信:yangguangfu520
* QQ号:541433511
* 作用:java和js互调
*/
public class JavaAndJSActivity extends Activity implements View.OnClickListener {
private EditText etNumber;
private EditText etPassword;
private Button btnLogin;
/**
* 加载网页或者说H5页面
*/
private WebView webView;
/**
* Find the Views in the layout<br />
* <br />
* Auto-created on 2016-07-28 11:43:37 by Android Layout Finder
* (http://www.buzzingandroid.com/tools/android-layout-finder)
*/
private void findViews() {
setContentView(R.layout.activity_java_and_js);
etNumber = (EditText) findViewById(R.id.et_number);
etPassword = (EditText) findViewById(R.id.et_password);
btnLogin = (Button) findViewById(R.id.btn_login);
btnLogin.setOnClickListener(this);
}
/**
* Handle button click events<br />
* <br />
* Auto-created on 2016-07-28 11:43:37 by Android Layout Finder
* (http://www.buzzingandroid.com/tools/android-layout-finder)
*/
@Override
public void onClick(View v) {
if (v == btnLogin) {
// Handle clicks for btnLogin
login();
}
}
private void login() {
String numebr = etNumber.getText().toString().trim();
String password = etPassword.getText().toString().trim();
if (TextUtils.isEmpty(numebr) || TextUtils.isEmpty(password)) {
Toast.makeText(JavaAndJSActivity.this, "账号或者密码为空", Toast.LENGTH_SHORT).show();
} else {
//登录
login(numebr);
}
}
private void login(String numebr) {
//调用js的javaCallJs方法,并且携带数据
webView.loadUrl("javascript:javaCallJs("+"'"+numebr+"'"+")");
//显示WebView的内容
setContentView(webView);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
findViews();
initWebView();
}
private void initWebView() {
webView = new WebView(this);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);//支持js
//添加javascript接口
webView.addJavascriptInterface(new MyJavaScript(),"Atguigu");
//设置客户端
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
Toast.makeText(JavaAndJSActivity.this, "页面加载完成", Toast.LENGTH_SHORT).show();
}
});
//加载本地的html或者网络的html
webView.loadUrl("file:///android_asset/JavaAndJavaScriptCall.html");
// webView.loadUrl("http://10.0.2.2:8080/assets/JavaAndJavaScriptCall.html");
}
class MyJavaScript{
public void showToast(){
Toast.makeText(JavaAndJSActivity.this, "我被js调用了", Toast.LENGTH_SHORT).show();
}
}
}