以下程式按下返回鍵WEBVIEW會回上一頁,到首頁的時候若按下上一頁會退出程式。若是帶有參數的POST或GET指令也會自動執行。


關鍵程式碼
1.
 @Override
   public void onFormResubmission (WebView view, Message dontResend,Message  resend){

       resend.sendToTarget();
   }
 
2.
  if (webView.canGoBack() && event.getKeyCode() == KeyEvent.KEYCODE_BACK)  
    {
    WebBackForwardList mWebBackForwardList = webView
                   .copyBackForwardList();
   
    if (mWebBackForwardList.getCurrentIndex() == 1) {
    if(webView.getUrl().toString().equals("首頁的URL")){
    ConfirmExit();
     return true;
    }
   
    byte[] post = EncodingUtils.getBytes("id=" +   +"&os=", "");
    webView.postUrl("首頁的URL", post);
    webView.clearHistory();
使用方式
webView.setWebViewClient(new MyWebViewClient());


  1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
private class MyWebViewClient extends WebViewClient {  
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.e("url===", url);
view.loadUrl(url);
progressBar.setVisibility(View.VISIBLE);
return true;
}

@Override
public void onPageFinished(WebView view, final String url) {
progressBar.setVisibility(View.INVISIBLE);
}

@Override
public void onFormResubmission (WebView view, Message dontResend,Message resend){

resend.sendToTarget();
}

}












int iqq=0;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (webView.canGoBack() && event.getKeyCode() == KeyEvent.KEYCODE_BACK)
{
WebBackForwardList mWebBackForwardList = webView
.copyBackForwardList();

if (mWebBackForwardList.getCurrentIndex() == 1) {
if(webView.getUrl().toString().equals("首頁的HTTP")){
ConfirmExit();
return true;
}

byte[] post = EncodingUtils.getBytes("id=" + +"&os=", "");
webView.postUrl("首頁的HTTP", post);
webView.clearHistory();
Log.e("QQ","QQ"+iqq+webView.getUrl().toString());
if(iqq==1){
ConfirmExit();
}else{

}
iqq=1;


}else if(mWebBackForwardList.getCurrentIndex()==0){
ConfirmExit();
}else
{
iqq=0;
webView.goBack();
Log.e("EE","E"+iqq);
}

return true;

}else{
ConfirmExit();
}

return super.onKeyDown(keyCode, event);
}
















public void ConfirmExit(){//退出確認
AlertDialog.Builder ad=new AlertDialog.Builder(PDOrderListWebView.this);
ad.setTitle("離開");
ad.setMessage("確定要退出?");
ad.setPositiveButton("是", new DialogInterface.OnClickListener() {//退出按鈕
public void onClick(DialogInterface dialog, int i) {
// TODO Auto-generated method stub
finish();//關閉activity

}
});
ad.setNegativeButton("否",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int i) {
//不退出不用執行任何操作
}
});
ad.show();//示對話框
}












}
arrow
arrow
    全站熱搜

    戮克 發表在 痞客邦 留言(0) 人氣()