
<uses-permission android:name="android.permission.INTERNET"/>
<activity android:name=".BaiduActivity"></activity>
/——java/js交互——/
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private WebView mW;
String url = "file:///android_asset/a.html";
/**
* 调用js代码
*/
private Button mBt;
private Button mBt2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
@SuppressLint("JavascriptInterface")
private void initView() {
mW = (WebView) findViewById(R.id.w);
WebSettings settings = mW.getSettings();
//设置是否支持js交互
settings.setJavaScriptEnabled(true);
//第二个参数也是js给的
mW.addJavascriptInterface(this, "hello");
//加载一个网页,这个网页加载的是assets目录里的a.html
mW.loadUrl(url);
mBt = (Button) findViewById(R.id.bt);
mBt.setOnClickListener(this);
mBt2 = (Button) findViewById(R.id.bt2);
mBt2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(MainActivity.this,BaiduActivity.class);
startActivity(intent);
}
});
}
/**
* 方法的名字是js给的
*/
@JavascriptInterface
public void showAndroid() {
Log.e("MainActivity", "showAndroid");
Toast.makeText(MainActivity.this, "js 调用Android 代码了", Toast.LENGTH_SHORT).show();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
default:
break;
case R.id.bt:
mW.loadUrl("javascript:show('我是android传过来的代码')");
break;
}
}
}
/——跳转到百度页面——/
public class BaiduActivity extends Activity {
private WebView mwebview;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_baidu);
mwebview = (WebView) findViewById(R.id.id_webview);
mwebview.getSettings().setJavaScriptEnabled(true); //设置WebView属性,能够执行Javascript脚本
mwebview.loadUrl("http://www.baidu.com/"); //加载需要显示的网页
mwebview.setWebViewClient(new HelloWebViewClient ()); //设置Web视图
}
@Override
//设置回退
//覆盖Activity类的onKeyDown(int keyCoder,KeyEvent event)方法
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && mwebview.canGoBack()) {
mwebview.goBack(); //调用goBack()返回WebView的上一页面
return true;
}
return false;
}
//Web视图
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
}
/——XML文件——/
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<Button
android:id="@+id/bt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="调用js代码" />
<Button
android:id="@+id/bt2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="跳转百度页面" />
<WebView
android:id="@+id/w"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<WebView
android:id="@+id/id_webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>