在Url完成加载时启动新活动

时间:2014-05-12 10:25:35

标签: android url webview

我正在将某个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;

            }

0 个答案:

没有答案