2013-10-27 218 views
1

想知道如何讓webview回去。Webview後退按鈕

試着把webview放回新聞界,但它似乎與我的代碼不起作用。不知道我是否啓動它,仍然對此感到困惑。

也有可能擺脫webview中的滾動條?我發現一些關於它的帖子,但我仍然對如何準確地把它變成我的代碼

package com.webapp.area956; 

    import android.os.Bundle; 
    import android.app.Activity; 
    import android.view.KeyEvent; 
    import android.view.Menu; 
    import android.webkit.WebView; 
    import android.webkit.WebViewClient; 

public class MainActivity extends Activity { 





@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    WebViewClient yourWebClient = new WebViewClient() 

     { 
      // Override page so it's load on my view only 
      @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String url) 
      { 
      // This line we let me load only pages inside Firstdroid Webpage 
      if (url.contains("area956") == true) 
       // Load new URL Don't override URL Link 
       return false; 

      // Return true to override url loading (In this case do nothing). 
      return true; 
      } 
     }; 

    String url = "http://www.area956.com"; 
    WebView view = (WebView) this.findViewById(R.id.webView1); 
    view.setWebViewClient(yourWebClient); 
    view.getSettings().setJavaScriptEnabled(true); 
    view.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 
    view.loadUrl(url); 

} 
public void onBackPressed(){ 

    if (WebView.canGoBack()) { 
      WebView.goBack();  
    } 
    else { 
      super.onBackPressed(); 
      finish(); 
    } 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

} 

回答

0

有無的WebView作爲類成員

WebView view; 
@Override 
public void onCreate(Bundle savedInstanceState) { 

圍欄然後初始化

view = (WebView) this.findViewById(R.id.webView1); 
view.setWebViewClient(yourWebClient); 
view.getSettings().setJavaScriptEnabled(true); 
view.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 
view.loadUrl(url); 

然後使用onKeyDown

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) 
{ 
    if ((keyCode == KeyEvent.KEYCODE_BACK) && view.canGoBack()) { 
     view.goBack(); 
     return true; 
    } 
    else 
    { 
      finish(); 
      return true; 
    } 
} 

您已在onCreate中聲明WebView view並在那裏初始化它。所以它成爲onCreate的本地。

編輯:

您還可以使用onBackPressed爲2.0

http://android-developers.blogspot.in/2009/12/back-and-other-hard-keys-three-stories.html

public void onBackPressed(){ 
    super.onBackPressed(); 
    if (view.canGoBack()) { 
      view.goBack();  
    } 
    else { 

      finish(); 
    } 
} 
+0

真棒!好耶!非常感謝,如果我提出另一個問題,允許在瀏覽器中打開外部網站。這是否與我的shouldoverrideurlloading是相反的? – user2923771

+0

您可以使用intent並提供url並在瀏覽器中打開鏈接。 – Raghunandan

+0

意圖?我知道這是很多要問,但你也介意解釋這一點? – user2923771