2013-06-05 11 views
6

私はwebview android appで作業しています。 私のアプリで問題を修正して、ナビゲートし直すことができません。私はこのコードを使用しており、これに対してすべての変更を加えることができました。Webview Android Appでの後方ナビゲーション

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()またはどこか他のネストされた)、それが空になるまでこれがバックWebView履歴スタックナビゲートします

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

し、この場合には(デフォルトのアクションを実行することアクティビティを終了します)。

WebViewClientをshouldOverrideUrlLoading return trueに設定すると、おそらくリンクがロードされません。

+0

ありがとうございました! :) – ashu

+0

終了ダイアログのコードを挿入しているときに問題が発生しました。ここで終了ダイアログを作成するのに役立ちますか? – ashu

+0

確かめてください - あなたの特定の問題、あなたが試したこと、間違っているところで新しい質問を開き、できれば助けてくれます。 :) –

関連する問題