Android中利用webView访问网页

                  利用android中的webview控件访问网页

大家可能又会疑惑了。因为在android中如果默认的话,我们是看不到系统中的webview控件的,但是,你可以敲出来,xml文件是不会排斥的。所以,今天我们来看一看如何利用webview来访问网页。

我们需要一个webview.xml文件,

代码如下:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:orientation="vertical" >

 

    <TextView

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:text="this is a webview" />

    <WebView

        android:id="@+id/webView"

        android:layout_width="fill_parent"

        android:layout_height="fill_parent"

        />

 

</LinearLayout>

这里我们弄好了控件爱你,接下来我们来写代码:

当然这里我们有两种方式来访问网页:

一种是就在java文件里面通过StringBuffer的追加来写网页代码

另一种是直接在资源文件里面引入一个网页文件,这样,我们就可以得到网页资源,然后引用。

这里我们先将第一种:

建立一个java文件:

代码如下:

package cn.web.view;

 

import java.io.UTFDataFormatException;

 

import android.app.Activity;

import android.os.Bundle;

import android.webkit.WebView;

 

public class WebViewActivity extends Activity {

    /** Called when the activity is first created. */

private WebView mWebView;

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        // to get the webview

        mWebView=(WebView)findViewById(R.id.webView);

        StringBuffer sb=new StringBuffer();

        sb.append("<html>");

        sb.append("<body>hello:weView!</body>");

        sb.append("</html>");

       mWebView.loadDataWithBaseURL(null, sb.toString(), "text/html", "utf-8", null);

    }

}

效果如下:

当然,这里我们还有第二种方式:

Xml里面的代码跟第一种一样,主要是一丁点代码的问题:

代码如下:

package cn.web.view;

 

import java.io.UTFDataFormatException;

 

import android.app.Activity;

import android.os.Bundle;

import android.view.KeyEvent;

import android.webkit.WebView;

 

public class WebViewActivity extends Activity {

    /** Called when the activity is first created. */

private WebView mWebView;

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        // to get the webview

        mWebView=(WebView)findViewById(R.id.webView);

   

     

    

    }

    //在这里我们需要去重写按下键这个方法,为了去扑捉用户的动作

    @Override

    public boolean onKeyDown(int keyCode, KeyEvent event) {

     if(keyCode==KeyEvent.KEYCODE_SEARCH){

        mWebView.loadUrl("http://www.baidu.com");

     return true;

     }

    

     return super.onKeyDown(keyCode, event);

    }

}

这里最重要的是不要忘记在配置文件里面添加权限:

<uses-permission android:name="android.permission.INTERNET"/>

第三种呢?就是经一个html页面导进我们熟知的assets目录下,这样,我们就可以得到assetMananage来得到网页信息啦!

代码如下:

package cn.zuxia.android.app;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import android.R.string;
import android.app.Activity;
import android.content.res.AssetManager;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebView;

public class WebViewTestActivity extends Activity {
    /** Called when the activity is first created. */

    //定义WebView控件,在当前应用中加载网页
    private WebView mWebView;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        mWebView=(WebView) findViewById(R.id.webView);
       
       
        //使用当前应用上下文得到AssetManager对象
       
        AssetManager assetManager=this.getAssets();
        try {
   InputStream inputStream=assetManager.open("index.html");
   BufferedReader br=new BufferedReader(new InputStreamReader(inputStream));
   
   //定义StringBuffer对象,存放所有的页面数据
   StringBuffer stringBuffer=new StringBuffer();
   
   String str=null;
   
   while((str=br.readLine())!=null){
    
    stringBuffer.append(str+"\n");
   }
   
   br.close();
   inputStream.close();
   
   mWebView.loadDataWithBaseURL(null, stringBuffer.toString(), "text/html", "utf-8", null);
   
   
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
    }

   
   
   
 
   
   
}

效果图如下:

over!

转载于:https://www.cnblogs.com/Catherine-Brain/p/3481259.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值