Android WebView 詳解及簡單實例
WebView基本使用
- WebView是View的一個子類,可以讓你在activity中顯示網(wǎng)頁
- 可以在布局文件中寫入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" />
加載一個網(wǎng)頁,使用loadUrl():
WebView myWebView = (WebView) findViewById(R.id.webview); myWebView.loadUrl(http://www.example.com);
設(shè)置WebView要顯示的網(wǎng)頁
- 設(shè)置WevView要顯示的網(wǎng)頁方法有很多:
- 互聯(lián)網(wǎng)頁面直接用:
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 顯示網(wǎng)頁
<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);
// 設(shè)置作為客戶端存在,界面跳轉(zhuǎn)只在自己應(yīng)用程序中
wedView.setWebViewClient(new WebViewClient());
wedView.loadUrl("要顯示的網(wǎng)址");
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);
//設(shè)置進度
progressBar.setProgress(newProgress);
// 進度到頭,消失
if (newProgress==100) {
progressBar.setVisibility(View.GONE);
}
}
});
//初始化WebView
initWedSetrings();
public void initWedSetrings(){
//獲取設(shè)置的對象
WebSettings settings = wedView.getSettings();
//設(shè)置wedview的緩存方式,設(shè)為默認(rèn)方式
// 默認(rèn)如果有緩存,并且緩存未過期,使用緩存,否則使用網(wǎng)絡(luò)
settings.setCacheMode(WebSettings.LOAD_DEFAULT);
//設(shè)置支持js代碼
settings.setJavaScriptEnabled(true);
//設(shè)置縮放模式,縮放到最小
settings.setDefaultZoom(ZoomDensity.FAR);
//設(shè)置字體大小
settings.setTextSize(TextSize.SMALLER);
}
注意添加權(quán)限
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.INTERNET"/>
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
Android HttpClient GET或者POST請求基本使用方法
在Android開發(fā)中我們經(jīng)常會用到網(wǎng)絡(luò)連接功能與服務(wù)器進行數(shù)據(jù)的交互,為此Android的SDK提供了Apache的HttpClient來方便我們使用各種Http服務(wù).這里只介紹如何使用HttpClient發(fā)起GET或者POST請求2012-12-12
Android Flutter實現(xiàn)興趣標(biāo)簽選擇功能
我們在首次使用內(nèi)容類 App 的時候,不少都會讓我們選擇個人偏好,通過這些標(biāo)簽選擇可以預(yù)先知道用戶的偏好信息。我們本篇就來看看 Flutter 如何實現(xiàn)興趣標(biāo)簽的選擇,需要的可以參考一下2022-11-11
Android開發(fā)之DatePickerDialog、TimePickerDialog時間日期對話框用法示例
這篇文章主要介紹了Android開發(fā)之DatePickerDialog、TimePickerDialog時間日期對話框用法,結(jié)合實例形式分析了Android使用DatePickerDialog、TimePickerDialog顯示日期時間相關(guān)操作技巧,需要的朋友可以參考下2019-03-03
僅5步搞定Android開發(fā)環(huán)境部署 Android開發(fā)環(huán)境搭建教程
僅5步搞定Android開發(fā)環(huán)境部署,這篇文章主要為大家詳細(xì)介紹了Android開發(fā)環(huán)境搭建教程,感興趣的小伙伴們可以參考一下2016-02-02

