L'authentification en jQuery Mobile et PhoneGap

J'ai une application web construit avec jQuery Mobile et PHP (CodeIgniter framework). Maintenant, je vais essayer de faire un PhoneGap version de celui-ci, pour en faire distribuable comme une application autonome. Cependant, le PHP web app. version utilise Ion Auth, un CodeIgniter plug-in pour l'authentification. Donc, quand vous allez à une page qui nécessite une authentification, l'application vous redirige vers le contrôleur de l'authentification de la méthode d'identification. Et après authentification, il vous redirige vers la page d'accueil (le jQuery Mobile de la page dans ce cas). Cela fonctionne bien dans la web app., depuis la page d'accueil est ouvert par le contrôleur de la maison, en premier lieu, de toute façon.

Mais voici l'essentiel: dans le PhoneGap version, la "page d'accueil" doit être l'index.html fichier dans PhoneGap. Apparemment, vous pouvez charger une autre url de démarrage en ajoutant une valeur de PhoneGap.plist, mais qui n'est pas acceptable par apple pour la soumission à l'app store. Et si je fais une redirection lors de l'authentification, je ne peux pas revenir à la index.html fichier après l'authentification...

Alors, comment doit-on aller sur l'authentification dans un PhoneGap/jQuery Mobile app?

Mise à JOUR:

J'ai essayé cette selon l'une des réponses, mais l'application tente encore de naviguer sur le compte/page de login (qui n'existe pas), quand je veux juste de connexion par le biais de la poste et de retourner une valeur à partir de la méthode:

    $('#login_form').bind('submit', function () {
        event.preventDefault();
        //send a post request to your web-service
        $.post('http://localhost/app_xcode/account/login', $(this).serialize(), function (response) {
            //parse the response string into an object
            var response = response;
            //check if the authorization was successful or not
            if (response == true) {
                $.mobile.changePage('#toc', "slide");
            } else {
                alert('login failed');
                $.mobile.changePage('#toc', "slide");
            }
        });
    });

Voici la méthode de contrôleur:

function login()
{
//validate form input
$this->form_validation->set_rules('identity', 'Identity', 'required');
$this->form_validation->set_rules('password', 'Password', 'required');
$base_url = $this->config->item('base_url');
$mobile = $this->detect_mobile();
if ($mobile === false && $base_url != 'http://localhost/app_xcode/') //Only restrict if not developing
redirect('account/notAMobile');
else if ($this->form_validation->run() == true) { //check to see if the user is logging in
//check for "remember me"
$remember = (bool)$this->input->post('remember');
if ($this->ion_auth->login($this->input->post('identity'), $this->input->post('password'), $remember)) { //if the login is successful
//redirect them back to the home page
$this->session->set_flashdata('message', $this->ion_auth->messages());
echo true;
/*redirect($this->config->item('base_url'), 'refresh');*/
}
else
{ //if the login was un-successful
//redirect them back to the login page
$this->session->set_flashdata('message', $this->ion_auth->errors());
/*redirect('account/login', 'refresh');*/ //use redirects instead of loading views for compatibility with MY_Controller libraries
}
}
else
{ //the user is not logging in so display the login page
//set the flash data error message if there is one
$this->data['message'] = (validation_errors()) ? validation_errors()
: $this->session->flashdata('message');
$this->data['identity'] = array('name' => 'identity',
'id' => 'identity',
'type' => 'text',
'value' => $this->form_validation->set_value('identity'),
);
$this->data['password'] = array('name' => 'password',
'id' => 'password',
'type' => 'password',
);
}
}

Je pense que j'ai supprimé ou commentés toutes les redirections qui étaient là. Donc, je ne sais pas pourquoi il essaie de charger la vue encore? A-t-elle quelque chose à voir avec jQuery Mobile en essayant d'y accéder parce que je poste pour que l'url?

InformationsquelleAutor Anders | 2011-11-10