1.直接通过URL网址打开网页显示内容:loadUrl()

  • 首先在布局中写一个WebView的控件
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.ygd.jreduch09.WebViewActivity">    <Button  android:id="@+id/bt" android:layout_alignParentRight="true" android:text="转到" android:layout_width="wrap_content" android:layout_height="wrap_content" />    <EditText  android:id="@+id/et" android:layout_toLeftOf="@+id/bt" android:layout_width="match_parent" android:layout_height="wrap_content" />    <WebView  android:id="@+id/wv" android:layout_below="@+id/et" android:layout_width="match_parent" android:layout_height="match_parent">    </WebView></RelativeLayout>
  • 然后在Activity中对WebView进行设置
public class WebViewActivity extends AppCompatActivity {    private WebView wv;    private EditText et;    private Button bt;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_web_view);        wv= (WebView) findViewById(R.id.wv);        et= (EditText) findViewById(R.id.et);        bt= (Button) findViewById(R.id.bt);        bt.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                String url="http://"+et.getText().toString();                WebSettings settings=wv.getSettings();  //获取WebSetting对象                settings.setJavaScriptEnabled(true);    //设置是否支持JavaScript                settings.setSupportZoom(true);  //设置是否支持缩放                settings.setDisplayZoomControls(true);  //设置内置缩放控制                wv.setWebViewClient(new WebViewClient());   //使用WebViewClient作为客户端                wv.loadUrl(url); //打开一个页面            }        });    }}
  • 效果图如下:

2.使用WebView加载Html代码:loadDataWithBaseURL()

  • 首先还是在布局中写一个WebView的控件(同上)
  • 然后将html代码连成字符串,调用该方法
public class WebViewHtmlActivity extends AppCompatActivity {    private WebView wv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_web_view_html);        wv= (WebView) findViewById(R.id.wv);        StringBuilder sbd=new StringBuilder();  //此处尽量使用StringBuilder        sbd.append("<html>");        sbd.append("<head><title>加载HTML</title></head>");        sbd.append("<body>");        sbd.append("<h1>大标题</h1>");        sbd.append("<ul>");        sbd.append("<li>无序列表ul标签</li>");        sbd.append("</ul>");        sbd.append("<ol>");        sbd.append("<li>嵌套li标签</li>");        sbd.append("</ol>");        sbd.append("</body>");        sbd.append("</html>");        wv.loadDataWithBaseURL(null,sbd.toString(),"text/html","utf-8",null);    }}
  • 效果如下:

3.Android与JS相互调用(同时重写WebChromeClient()来显示加载进度)

  • 写好一个Html文件放入项目的assets目录中(没有则在下图位置新建)

  • Html代码如下:

<html><head>    <title>我的第一个网页</title>    <script> function test(){ var a=1; var b='星期'; alert(b+a); } </script><body><h1>大标题</h1><ul>    <li>你好</li>    <li>世界</li>    <li>哈哈</li></ul><input type="button" onclick="test()" value="点击我"></body></head></html>
  • 主函数代码如下:
public class LoadHtmlActivity extends AppCompatActivity {    private WebView wv;    private Button bt1,bt2;    private ProgressBar progressBar;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_load_html);        wv= (WebView) findViewById(R.id.wv);        bt1= (Button) findViewById(R.id.bt1);        bt2= (Button) findViewById(R.id.bt2);        progressBar= (ProgressBar) findViewById(R.id.pb);        WebSettings settings=wv.getSettings();        settings.setJavaScriptEnabled(true);        wv.setWebChromeClient(new MyClient());        wv.setWebViewClient(new WebViewClient());        wv.loadUrl("file:///android_asset/1.html"); //asset不用加s// wv.loadUrl("http://www.baidu.com");        bt1.setOnClickListener(new View.OnClickListener() { //通过布局的button来调用html中的方法            @Override            public void onClick(View v) {                wv.loadUrl("file:///android_asset/1.html");                wv.loadUrl("javaScript:test()");            }        });        bt2.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                progressBar.setVisibility(View.VISIBLE);                wv.loadUrl("http://www.baidu.com");            }        });    }    public class MyClient extends WebChromeClient{        @Override        public void onProgressChanged(WebView view, int newProgress) {            super.onProgressChanged(view, newProgress);            if(newProgress==100){                progressBar.setVisibility(View.GONE);            }        }    }}

更多相关文章

  1. Android动画(一)Interpolator
  2. android recyclerview adaper封装
  3. Android软件盘(EditText)的搜索功能
  4. Android(安卓)获取照相机图片或本地图片
  5. Android(安卓)视频和音频采集
  6. ListView滚动小滑块
  7. android加载大量图片内存溢出的三种解决办法
  8. android ImageView加载大图解决方案
  9. Android(安卓)ListView 下拉刷新 上拉更多[实例]

随机推荐

  1. Java乔晓松-android中获取图片的缩略图(
  2. Android中的线程池与任务队列
  3. Android[中级教程]第十一章 Android异步
  4. Android面试系列文章2018之Android部分Bi
  5. android studio导入其他项目工程报错解决
  6. 基于Java Socket的自定义协议,实现Android
  7. 手机硬件形态
  8. Android apk 签名总结
  9. android的EditText里文字和图片混合编辑
  10. Android(安卓)studio无法连接识别检测各