我正在将某个Url加载到WebView中。这是一个登录页面,用户将通过身份验证。经过身份验证后,他会显示某个页面。此时我想停止Webview加载并开始一项新活动。
要做到这一点,我抓住重定向的网址,并将其与我的值进行比较,如果匹配,则停止页面加载。但是,我尝试与url进行比较的String Iam发生了两次。首先是页面开始加载,第二次是页面合并完成加载。我想比较第二个
但这不会启动新活动。
这就是我的尝试: -
myWebView.loadUrl(url);
final ProgressDialog progressBar = ProgressDialog.show(Details1.this, "Loading..", "Please wait!");
myWebView.setWebViewClient(new WebViewClient()
{
private Object progress;
@Override
public void onPageFinished(WebView view, String url)
{
// TODO Auto-generated method stub
super.onPageFinished(view, url);
if(progressBar!=null && progressBar.isShowing())
{
progressBar.dismiss();
}
url= view.getUrl();
redirected= Uri.decode(url);
/*AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
Details1.this);
// set title
alertDialogBuilder.setTitle("Your Title");
// set dialog message
alertDialogBuilder
.setMessage(redirected)
.setCancelable(false)
.setNegativeButton("Ok",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
// if this button is clicked, just close
// the dialog box and do nothing
dialog.cancel();
}
});
// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
alertDialog.show();*/
if(redirected!=null && redirected.contains(endpointHost+"/AuthorizeDevice/index/"+deviceId))
{
Utility.ProgressDialogFragment progDialog = new Utility.ProgressDialogFragment();
progDialog.show(getFragmentManager(), "Wait");
myWebView.stopLoading();
String authorizationContentString = AuthenticateDeviceEndPoint+ "?encodedAccountName=" + encodedAccountName + "&deviceId=" + deviceId + "&hostUrl=" + hostUrl;
authorizationContentString =authorizationContentString.replace("|", "%7C");
//UserInformation userInfo;
JSONParser parser = new JSONParser();
Object register;
try
{
//userInfo
// String responseData= new AuthenticateDevice(Details1.this,myprogressDialog).execute(authorizationContentString).get();
String responseData = new AuthenticateDevice(Details1.this, progDialog).execute(authorizationContentString).get();
register = parser.parse(responseData);
org.json.simple.JSONObject authDevice = (org.json.simple.JSONObject) register;
//Convert Json objects to strings
usersname = (String) authDevice.get("FirstName");
AuthenticationInformation authInfo = new AuthenticationInformation(Details1.this);
authInfo.SetUserInformation(username );
}
catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (ExecutionException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Intent myIntent = new Intent(Details1.this, Home.class);
myIntent.putExtra("UsersName", usersname);
myIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(myIntent);
finish();
}
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
// TODO Auto-generated method stub
view.loadUrl(url);
return true;
}