欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android WebView 详解及简单实例

程序员文章站 2022-10-24 17:38:27
webview基本使用  webview是view的一个子类,可以让你在activity中显示网页 可以在布局文件中写入webview:比如下面这个写了一个...

webview基本使用

  •  webview是view的一个子类,可以让你在activity中显示网页
  • 可以在布局文件中写入webview:比如下面这个写了一个填满整个屏幕的webview:
<?xml version="1.0" encoding="utf-8"?>
<webview xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/webview"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
/>

加载一个网页,使用loadurl():

webview mywebview = (webview) findviewbyid(r.id.webview);
mywebview.loadurl(http://www.example.com);

设置webview要显示的网页

  1. 设置wevview要显示的网页方法有很多:
  2. 互联网页面直接用:
mywebview.loadurl(“http://www.google.com“);

本地文件用:

mywebview.loadurl(“file:///android_asset/xx.html“); 

本地文件存放在:assets文件中。

  还可以直接载入html的字符串,如:

string htmlstring = "<h1>title</h1><p>this is html text<br /><i>formatted in italics</i><br />anothor line</p>";
// 载入这个html页面
mywebview.loaddata(htmlstring, "text/html", "utf-8");

在webview中使用javascript

webview = (webview) findviewbyid(r.id.wedview);
    websettings settings = webview.getsettings();
    //支持js
    settings.setjavascriptenabled(true);
    // 安卓为js提供接口
    webview.addjavascriptinterface(new object(){
      @android.webkit.javascriptinterface
      private void setinfo(string username,string uclass) {
        // todo auto-generated method stub
        toast.maketext(mainactivity.this,"username:"+username+","+"uclass"+uclass, toast.length_short).show();

      }


    }, "javacode");

webview.loadurl("http://localhost:8080/jstest.html");

webview 显示网页

<progressbar 
    android:id="@+id/progressbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    style="?android:attr/progressbarstylehorizontal"
    android:visibility="gone"

    />
  <webview 
    android:id="@+id/wedview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"    
    />

java代码

progressbar = (progressbar) findviewbyid(r.id.progressbar);
    wedview = (webview) findviewbyid(r.id.wedview);
    // 设置作为客户端存在,界面跳转只在自己应用程序中
    wedview.setwebviewclient(new webviewclient());
    wedview.loadurl("要显示的网址");
    wedview.setwebchromeclient(new webchromeclient(){
      @override
public void onprogresschanged(webview view, int newprogress) {
        // todo auto-generated method stub
  super.onprogresschanged(view, newprogress);
        progressbar.setvisibility(view.visible);
        //设置进度
        progressbar.setprogress(newprogress);
        // 进度到头,消失
        if (newprogress==100) {
          progressbar.setvisibility(view.gone);

        }

      }
    });
    //初始化webview
    initwedsetrings();



public void initwedsetrings(){

    //获取设置的对象
     websettings settings = wedview.getsettings();
     //设置wedview的缓存方式,设为默认方式
    // 默认如果有缓存,并且缓存未过期,使用缓存,否则使用网络
     settings.setcachemode(websettings.load_default);
     //设置支持js代码
     settings.setjavascriptenabled(true);
     //设置缩放模式,缩放到最小
     settings.setdefaultzoom(zoomdensity.far);
     //设置字体大小
     settings.settextsize(textsize.smaller);

  }

注意添加权限

 <uses-sdk
    android:minsdkversion="8"
    android:targetsdkversion="17" />
  <uses-permission android:name="android.permission.internet"/>

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!