(android)当重定向url时,WebViewClient不起作用

时间:2012-02-06 05:36:55

标签: android

重定向网址时遇到问题。我设置了webviewclient和 当重定向url时,它应该完成webview活动。 但它不起作用,我想知道为什么......下面是我的代码,我会 感谢任何人都可以帮助我。 THX。

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 个答案:

答案 0 :(得分:2)

嗯,我认为是因为你的这种情况,

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

不满意所以它没有调用WebViewActivity.this.finish();。原因是您正在加载url - "http://m.facebook.com/r.php",并且条件是您正在检查"http://m.facebook.com/gettingstarted/"。因此,如果没有其他部分可以处理其他部分,则返回false。

答案 1 :(得分:0)

如果您不需要,请从WebViewActivity中删除onKeyDown的代码,或者只是尝试删除它。感谢