Android 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"/>
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
赞 (0)