问题描述
当URL重定向我面对的问题。我设置webviewclient和
据推测当URL重定向到完成web视图的活动。
但它不工作,我不知道为什么......下面是我的code,我会
AP preciated如果有人能帮助我。 THX。
公共类WebViewActivity延伸活动{的WebView mWebView;
字符串fbRegsitered =http://m.facebook.com/gettingstarted/;
//\"http://m.facebook.com/r.php?refid=0
字符串fbUnregisterd =http://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 andIt 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 beappreciated 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不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!