• 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~

  • 相关阅读:
    前端Vue+后端Django实现微信登录
    选中div内文本复制后会多一个换行符_javascript
    Pinia实操配置,Vuex的替代品
    【Elasticsearch】ES选主流程分析
    asp.net+sqlserver教学大纲管理系统C#
    Spring Security如何防止会话固定攻击
    Semantic Kernel入门系列:利用Handlebars创建Prompts functions
    el-table 对循环产生的空白列赋默认值
    服务与发现
    手撕Vue-查找指令和模板
  • 原文地址:https://blog.csdn.net/cqn2bd2b/article/details/125378880