当URL重定向(机器人)WebViewClient不起作用 [英] (android) WebViewClient does not work when url is redirected

查看:120
本文介绍了当URL重定向(机器人)WebViewClient不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当URL重定向我面对的问题。我设置webviewclient和
据推测当URL重定向到完成web视图的活动。
但它不工作,我不知道为什么......下面是我的code,我会
AP preciated如果有人能帮助我。 THX。

 公共类WebViewActivity延伸活动{的WebView mWebView;
字符串fbRegsitered =htt​​p://m.facebook.com/gettingstarted/;
//\"http://m.facebook.com/r.php?refid=0
字符串fbUnregisterd =htt​​p://m.facebook.com/r.php?refid=0;
私人ProgressDialog mSpinner;/ **当第一次创建活动调用。 * /
@覆盖
公共无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.webview);
    mWebView =(的WebView)findViewById(R.id.webview);
    mWebView.getSettings()setJavaScriptEnabled(真)。
    mWebView.loadUrl(http://m.facebook.com/r.php);
    mWebView.setWebViewClient(新HelloWebViewClient());
}@覆盖
公共布尔的onkeydown(INT键code,KeyEvent的事件){
    如果((键code == KeyEvent.KEY code_BACK)及和放大器; mWebView.canGoBack()){
        mWebView.goBack();
        返回true;
    }
    返回super.onKeyDown(键code,事件);}私有类HelloWebViewClient扩展WebViewClient {    @覆盖
    公共布尔shouldOverrideUrlLoading(的WebView视图,字符串URL){
        //view.loadUrl(url);
        如果(url.contains(fbRegsitered)){
            WebViewActivity.this.finish();
        }
        如果(url.startsWith(fbUnregisterd)){
            //完();
        }
        返回true;
    }
}
}


解决方案

好吧,我想它的,因为你的这种情况,

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

是不满足所以它不是叫 WebViewActivity.this.finish(); 。原因是要装入网​​址 - http://m.facebook.com/r.php,并在条件你检查 http://m.facebook.com/gettingstarted/。因此,它返回false那里没有别的一部分来处理其他部分。

I am facing problem when url is redirected. I set webviewclient and It is supposed to finish webview activity when url is redirected. But it is not working and I wonder why... below is my code and I would be appreciated if anyone can help me. 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; 
    } 
}
}

解决方案

Well, I think its because your this condition,

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

is not satisfying so its not calling WebViewActivity.this.finish();. The reason is you are loading url - "http://m.facebook.com/r.php" and in the condition you are checking for "http://m.facebook.com/gettingstarted/". So, its returning false where there is not else part to handle the else part.

这篇关于当URL重定向(机器人)WebViewClient不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆