2012-02-06 281 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的代码。感谢