2012-02-06 285 views
-1

當url被重定向時,我面臨問題。我設置了webviewclient和 它應該在url重定向時完成webview活動。 但它不工作,我想知道爲什麼...下面是我的代碼,我會 讚賞如果有人可以幫助我。謝謝。(android)當url被重定向時WebViewClient不起作用

public class WebViewActivity extends Activity { 

WebView mWebView; 
String fbRegsitered = "http://m.facebook.com/gettingstarted/"; 
//"http://m.facebook.com/r.php?refid=0 
String fbUnregisterd = "http://m.facebook.com/r.php?refid=0"; 
private ProgressDialog mSpinner; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.webview); 
    mWebView = (WebView) findViewById(R.id.webview); 
    mWebView.getSettings().setJavaScriptEnabled(true); 
    mWebView.loadUrl("http://m.facebook.com/r.php"); 
    mWebView.setWebViewClient(new HelloWebViewClient()); 
} 

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

} 

private class HelloWebViewClient extends WebViewClient { 

    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     //view.loadUrl(url); 
     if(url.contains(fbRegsitered)){ 
      WebViewActivity.this.finish(); 
     } 
     if(url.startsWith(fbUnregisterd)){    
      //finish(); 
     } 
     return true; 
    } 
} 
} 

回答

2

嗯,我想它的,因爲你的這種情況下,

if(url.contains(fbRegsitered)){ 
      WebViewActivity.this.finish(); 
     } 

並不滿足所以它不是叫WebViewActivity.this.finish();。原因是你正在加載url - "http://m.facebook.com/r.php"和在你檢查"http://m.facebook.com/gettingstarted/"的條件。所以,如果沒有其他部分來處理else部分,它將返回false。

+0

我GOOGLE了,我發現我所尋找的是onPageFinished()或onPageStarted()。謝謝你回答這個不合理的問題。 – 2012-02-07 04:36:34

0

剛剛從WebViewActivity如果它不是需要你或者只是一次嘗試刪除它刪除的onkeydown的代碼。感謝