承前文透過WebViewClient瀏覽網頁,而非Android內建的瀏覽器,且載入網頁時可出現自訂的提示訊息。
本文將繼續擴大相同專案,讓Android基本按鍵BACK能予使用者「回到前一頁(網頁)」,而非結束瀏覽網頁的Activiy。
[範例情境]
1.透過Android的WebViewClient包裝網頁
2.點選BACK按鍵可以回到上一個瀏覽過的網頁
[情境分析]
1.1個Activity
2.1個Layout
3.捕捉onKeyDown以覆寫BACK按鍵原始行為
SETP 1:捕捉onKeyDown事件
Source→Override / Implement Method...→onKeyDown
SETP 2:撰寫onKeyDown程式碼
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
if (mWebView01.canGoBack())
{
mWebView01.goBack();
}
else
{
ProgressDialog d2=new ProgressDialog(Homework6.this);
d2.setTitle("ProgressDialog");
d2.setMessage("沒有上一頁");
d2.show();
}
event.startTracking();
}
return false;
}
本步驟針對BACK覆寫可參考2篇文章:
1.Android官方說明
2.Android與J2ME之區別
SETP 3:執行
請實際瀏覽多個連結並測試BACK是否真的都符合history回到前一網頁。
另外,piggy還很38的模仿前文多作了個ProgressDialog,當使用者對沒有上一頁的第一個網頁按下BACK時,可以出現提示資訊讓主頁面失焦,可同時避免結束Activity。
沒有留言:
張貼留言