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要显示的网页
- 设置wevview要显示的网页方法有很多:
- 互联网页面直接用:
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"/>
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
上一篇: Android内存使用情况的应用实例