Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    278

    [android] login pagina web

    Ciao a tutti, non espertissima del mondo android, mi trovo alla realizzazione delle mie prime applicazioni.
    Dovrei creare un applicazione dove prima di tutto l'utilizzatore deve loggarsi e quindi l'activity principale deve contenere un pannello di login.
    La domanda è questa....
    Scegliere di richiamare il form di login web in questo modo:
    codice:
    public class MiaActivity extends Activity{
    	private WebView webView;
     
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.main);
     
    		webView = (WebView) findViewById(R.id.webView1);
    		webView.getSettings().setJavaScriptEnabled(true);
    		webView.loadUrl("http://www.miosito.it/index.php?cmd=login");
     
    	}
     
    }
    oppure creare un pannello di login in java del tipo:
    codice:
    public class MiaActivity extends Activity{
    super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            txtUserName=(EditText)this.findViewById(R.id.txtUname);
            txtPassword=(EditText)this.findViewById(R.id.txtPwd);
            btnLogin=(Button)this.findViewById(R.id.btnLogin);
            btnLogin=(Button)this.findViewById(R.id.btnLogin);
    }
    grazie per l'aiuto.

  2. #2
    io ho usato un login del secondo tipo, ma cercando i dati su un server remoto.
    in pratica ho già un db per un sito web, e il login è lo stesso.
    se hai un db remoto forse è la soluzione migliore.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    278
    Grazie della risposta.
    In effetti ho un db remoto,ma mettiamo il caso che ci si trova in un posto dove il segnale dello smartphone o tablet è assente e bisogna fare il login (In quel momento è necessario), bisogna optare anche per un db locale?

    Grazie ancora.

  4. #4
    bhe questo dipende.
    se fai il loign che dati puoi vedere?
    se anche questi sono presi online non ha molto senso implementare un db locale, peerchè se facesse il login non vedrebbe cmq il resto dei dati.

    e devi tener presente che devi anche sincronizzare il db locale con quello remoto.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    278
    Ti spiego in breve cosa dovrebbe fare l'app.

    L'app viene usata da agenti che nell'area a loro assegnata si recano dai clienti per prendere degli ordini,lasciando tutto il resto che fa l'applicazione ,l'agente si deve loggare e una volta loggato recupera idati del cliente e compila l'ordine.
    E' chiaro che il tutto si recupera da remoto ok.
    Mettiamo un caso, allora...
    L'agente va dal cliente e' in quel momento non c'è campo,si puo' optare con una specie di blocknotes nell'app, che per impossibilita' di mancanza del campo ad inserire gli ordini nel db remoto, a prendere nota e rientrando in sede a trasferire i dati in remoto?

    Grazie.

  6. #6
    in genere le app di questo genere funzionano così.
    quando stanno in sede sincronizzano i dati con il db locale.
    poi dal cliente, fanno login locale e fanno l'ordine salvandolo in locale.
    poi di nuovo in sede sincronizzano l'ordine.

    un'altra possibilità è quella di usare la wireless del cliente (se c'è) facendo invece tutto in remoto.
    per questo genere di app eviterei l'uso della rete cellulare.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    278
    Ciao ho creato questo codice per creare un pannello di login:
    codice:
    public class Login extends Activity {
    	Button button_login;
    	EditText username;
    	EditText password;
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.login_form);
    		
    		username=(EditText)findViewById(R.id.txtUsername);
    		password=(EditText)findViewById(R.id.txtPassword);
    		button_login=(Button)findViewById(R.id.btn_login);
    		
    		
    		username.setText("testo di prova");
    	}
    	
    	public void sendLogin(View v)
    	{
    	   if(this.username.getText().toString().length()==0)
    	   {
    		  Toast.makeText(Login.this,"Prego inserire l'username!",Toast.LENGTH_LONG).show();
    	   }
    	   else if(this.password.getText().toString().length()==0)
    	   {
    		   Toast.makeText(Login.this,"Prego inserire la password",Toast.LENGTH_LONG).show();
    	   }
    	   else
    	   {
    		  //invio parametri al server
    	   }
    	}
    }
    ho testato quanto fatto e tutto va bene,la parziale app funziona...

    Ora dovrei procedere con l'invio dei parametri al server.
    Ipotizzando prima di procedere ad interrogare un db;vorrei confrontare due variabili:
    username="pippo" e password="12345".

    Il punto è, che classe devo usare su android per inviare i parametri al server e confrontare se sono uguali alle due variabili?
    Spero di essere stata chiara e grazie per l'aiuto....

  8. #8
    devi fare una richiesta http a un file lato server che poi si occuperà di interrogare il db.
    io ho vari file php sul server, e ne ho uno per il login.
    invio una richiesta post a quel file con quei parametri.
    il file php prende quei valori e fa una query.
    se trova la combinazione da un risultato, sennò ne da un altro.
    a seconda del risultato che ti da scegli cosa far vedere all'utente.
    qui (sperando di poter postare il link, in caso scusate) ho scritto un articolo con un esempio.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    278
    Grazie della risposta e della tua disponibilita'.

    Ho letto l'articolo e a seconda lato server ho un file jsp oppure php non c'e problema.

    Visto che si è obbligati come letto nell'articolo, ad una chiamata asincrona al server laclasse madre:
    AsyncTask<Object, Object, Object>
    che valori deve contenere dentro "<" e ">" ?

    Sara' banale ma cercando di aumetare le mie conoscenza man mano....
    Grazie.

  10. #10
    dipende.
    io ho sempre lasciato come nell'esempio perchè alla classe asincrona non passo nessun parametro.
    infatti se vedi ho messo:
    codice:
    new AsyncConnection().execute("");
    senza parametri.
    AsyncTask è abbastanza complesso e anche io ne faccio un uso basilare per ora.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.