Android WebView載入網頁,實現前進、後退、重新整理、超連結
阿新 • • 發佈:2019-01-09
你也可以檢視我的其他同類文章,也會讓你有一定的收貨!
- 先在要顯示網頁的佈局檔案中宣告WebView
- 在Activity中例項化WebView
- 呼叫WebView的loadUrl( )方法,設定WevView要顯示的網頁
- 為了讓WebView能夠響應超連結功能,呼叫setWebViewClient( )方法,設定 WebView檢視
- 在用WebView的網頁開啟連線後想要具有返回原來的網頁的功能,可通過覆蓋Activity類的onKeyDown()方法,如果不做任何處理,點選手機自帶的返回按鍵,瀏覽器則會呼叫finish()關閉瀏覽器,而不是回退到上一頁面
- 要訪問到網路還需要在AndroidManifest.xml檔案中新增許可權,否則會出現Web page not available錯誤。
目的:實現用webview顯示網頁,並且回退時回到上一個頁面,而不是退出WebView ,位址列也沒有。
mWebView.goBack(); //後退
mWebView.goForward();//前進
mWebView.reload(); //重新整理
package com.example.netconnect3;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends Activity {
private WebView webview;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//2、在Activity中例項化WebView
setContentView(R.layout.activity_main);
webview = (WebView) findViewById(R.id.webview);
//第2步也可以替換為下面這兩句,就不要R.layout.activity_main佈局檔案了
//mwebview = new WebView(this); //例項化WebView物件
//setContentView(mwebview);
// 設定WebView屬性,能夠執行Javascript指令碼
webview.getSettings().setJavaScriptEnabled(true);
//3、 載入需要顯示的網頁
webview.loadUrl("http://www.baidu.com/");
///4、設定響應超連結,在安卓5.0系統,不使用下面語句超連結也是正常的,但在MIUI中安卓4.4.4中需要使用下面這條語句,才能響應超連結
webview.setWebViewClient(new HelloWebViewClient());
}
@Override
// 設定回退
// 5、覆蓋Activity類的onKeyDown(int keyCoder,KeyEvent event)方法
public boolean onKeyDown(int keyCode, KeyEvent event) {
//按下返回鍵並且webview介面可以返回
if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
webview.goBack(); // goBack()表示返回WebView的上一頁面
return true;
}
return super.onKeyDown(keyCode,event);
}
// Web檢視
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
}
佈局檔案:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<WebView
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>"
</RelativeLayout>
還有許可權:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
關注我的公眾號,輕鬆瞭解和學習更多技術