• Android之WebView的使用与简单浏览器


    在要浏览网页的时候,第一种我们可以通过Intent来使用自带的浏览器,第二种可以通过WebView这个控件来浏览。

    第一种很简单,直接看代码:

    Uri uri = Uri.parse("http://www.baidu.com/");
    Intent launchBrowser = new Intent(Intent.ACTION_VIEW, uri);
    startActivity(launchBrowser);

    第二种就稍微复杂点

    首先我们要对WebView这个控件有一个XML布局:

    
    
        
    
    
    

    在OnCreate方法中加载这个控件,并设置一些参数:

    webView = (WebView) findViewById(R.id.webView); //加载WebView
    webView.getSettings().setJavaScriptEnabled(true); //设置设否支持JavaScript
    webView.loadUrl("http://www.baidu.com/");  //加载地址
    webView.setWebViewClient(new WebViewClient() {
          @Override
          public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
         return true;
          }
    }); //设置浏览
    

    如果要使用WebView来访问网络,则还需要一个权限:

    
    

    这样,一个简单的访问web的小程序就做好了。

    当然,简单的这样并不能满足,我们还需要加一点功能。。。

    首先我们要对回退键进行一下处理:

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if((keyCode == KeyEvent.KEYCODE_BACK)) {
            if(webView.canGoBack())
               webView.goBack();
            else
               finish();
            return true;
        }
        return false;
    }
    

    这样做的目的,是为了每次按回退键之后都返回到前一个页面,如果不这么做,就相当于回退一个activity,这个本身就一个activity,按回退之后就相当于把这个activity给销毁掉了,因此,要加上以上这些代码。

    我们知道,浏览器的上方都有一个输入地址的地方,我们也给加上去,先修改一下XML布局:

    
    
        
    
        

    多了个EditText和Button控件,对这两个控件作如下处理:

    et_address = (EditText) findViewById(R.id.et_address);
    et_address.setText("http://www.baidu.com/");
    btn_go = (Button) findViewById(R.id.btn_go);
        btn_go.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String address = et_address.getText().toString();
            if(!address.startsWith("http://")) {
                address = "http://" + address;
            } // 如果不以http://开头,识别不了,所以判断
            webView.loadUrl(address);
            et_address.setText(address);
        }
    });
    

    好了,到此为止,一个普通的浏览器就完成了,当然WebView这个控件还有很多可以设置的属性,我就不一一介绍了。

    The End~

  • 相关阅读:
    websocket+node+vite(vue)实现一个简单的聊天
    金融数字化是什么?如何进行金融数字化转型?
    Python 正则表达式:强大的文本处理工具
    JavaScript高级 |如何玩转箭头函数?
    什么是ConcurrentHashMap?
    虚拟机构建单体项目及前后端分离项目
    美国IP代理如何获取?适用于哪些场景?
    MyBatis下的CRUD
    模式匹配算法 - Horspool
    random—生成随机数,time—时间标准库
  • 原文地址:https://blog.csdn.net/cqn2bd2b/article/details/125378880