2013-06-05 41 views
6

我正在開發webview android應用程序。 我無法修復我的應用中的問題以導航。我正在使用此代碼並嘗試對此進行所有修改。在Webview Android應用程序中後退導航

public class DeviceActivity extends Activity 
{ 
private WebView web; 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main_layout); 

    web = (WebView) findViewById(R.id.webView); 
    web.getSettings().setJavaScriptEnabled(true); 
    web.getSettings().setJavaScriptCanOpenWindowsAutomatically(false); 
    web.getSettings().setPluginsEnabled(false); 
    web.getSettings().setSupportMultipleWindows(false); 
    web.getSettings().setSupportZoom(false); 
    web.setVerticalScrollBarEnabled(false); 
    web.setHorizontalScrollBarEnabled(false); 

    //Our application's main page will be loaded 
    web.loadUrl("file:///android_asset/fbp/index.html"); 

    web.setWebViewClient(new WebViewClient() { 
      @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { 
       return false; 
      } 
      public void onBackPressed(){ 

    if (web.canGoBack()) { 
      web.goBack();  
    } 
    else { 
     //My exit alert code goes here.  

    } 
} 
     }); 

} 

} 

這不會回溯,而是退出應用程序。 任何幫助,將不勝感激。

回答

15

Activity代碼添加這個(不onCreate()或嵌套其他地方)

@Override 
public void onBackPressed() { 
    if (web.copyBackForwardList().getCurrentIndex() > 0) { 
     web.goBack(); 
    } 
    else { 
     // Your exit alert code, or alternatively line below to finish 
     super.onBackPressed(); // finishes activity 
    } 
} 

這將向後導航通過WebView歷史堆棧,直到它是空的,然後執行默認動作(在這種情況下,完成活動)。

您應該也可能將您的WebViewClient設置爲shouldOverrideUrlLoading返回true或者您不會加載任何鏈接。

+0

感謝您的幫助! :) – ashu

+0

我在插入退出對話框代碼時遇到問題,可以幫我在這裏做退出對話嗎? – ashu

+0

當然 - 用你的具體問題開一個新的問題,你已經嘗試了什麼,哪裏出問題了,如果可以的話,我會幫忙的。 :) –

相關問題