2013-06-05 39 views
6

Tôi đang làm việc trên ứng dụng android trên webview. Tôi không thể khắc phục sự cố trong ứng dụng của mình để điều hướng trở lại. Tôi đang sử dụng mã này và đã thử tất cả các sửa đổi có thể được thực hiện cho điều này.Quay lại Điều hướng trong Ứng dụng Android trên Webview

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.  

    } 
} 
     }); 

} 

} 

Điều này không điều hướng trở lại mà thay vào đó thoát khỏi ứng dụng. Mọi trợ giúp sẽ được đánh giá cao.

Trả lời

15

Thêm này trong Activity mã của bạn (không phải trong onCreate() hoặc lồng nhau bất cứ nơi nào khác)

@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 
    } 
} 

này sẽ di chuyển trở lại thông qua WebView lịch sử chồng cho đến khi nó là rỗng và sau đó thực hiện hành động mặc định (trong trường hợp này nó kết thúc hoạt động).

Bạn cũng có thể đặt WebViewClient của mình để có shouldOverrideUrlLoading trả lại true hoặc bạn sẽ không tải bất kỳ liên kết nào.

+0

Cảm ơn bạn đã trợ giúp! :) – ashu

+0

Tôi đang gặp sự cố khi chèn mã đối thoại thoát, có thể giúp tôi thực hiện cuộc đối thoại thoát ở đây? – ashu

+0

Chắc chắn - hãy mở một câu hỏi mới với vấn đề specifc của bạn, những gì bạn đã thử, nơi nó xảy ra sai, và tôi sẽ giúp nếu tôi có thể. :) –

Các vấn đề liên quan