Autore Topic: webView e Sessioni  (Letto 382 volte)

Offline salvatore.zagarella

  • Utente normale
  • ***
  • Post: 239
  • Respect: +2
    • Mostra profilo
    • Ieeng Solution
webView e Sessioni
« il: 23 Gennaio 2013, 12:08:36 CET »
0
Salve ragazzi,
vorrei farvi una domanda..
Ho una app che contiene una webview..durante la prima connessione invio dei dati in post ad una pagine php; questa riceve i dati e dovrebbe settare la sessione..

Il problema è che non riesco a settare la sessuine della mia webView..
Esiste un modo per settare la sessione?

Codice (Java): [Seleziona]
protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);            
                // aggiunge il supporto alla barra
                this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
                setContentView(R.layout.activity_main);

                splash = (RelativeLayout) findViewById(R.id.relativeSplash);           
                webView = (WebView) findViewById(R.id.webView1);
               
                webView.clearHistory();
                webView.clearFormData();
                webView.clearCache(true);
               
                StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
                StrictMode.setThreadPolicy(policy);

                // Create a new HttpClient and Post Header
                HttpClient client = new DefaultHttpClient();                   
                HttpPost post = new HttpPost("myURL.php");
                post.setHeader("User-Agent", "Mozilla/5.0 (Linux; U; Android 4.0.3; ko-kr; LG-L160L Build/IML74K) AppleWebkit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30");

                DateFormat dateFormat = new SimpleDateFormat("dd-MM-yy");
                Date date = new Date();

                try {
                        // Add your data
                        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
                        nameValuePairs.add(new BasicNameValuePair("password", date .toString()));              
                        post.setEntity(new UrlEncodedFormEntity(nameValuePairs));

                        // Execute HTTP Post Request                   
                        HttpResponse response = client.execute(post);

                        HttpEntity entity = response.getEntity();
                        String responseString = new BasicResponseHandler().handleResponse(response);                   
                        Log.i("resp", responseString);

                        WebSettings setting = webView.getSettings();
                        setting.setJavaScriptEnabled(true);
                        setting.setBuiltInZoomControls(true);
                        setting.setSupportZoom(true);
                       
                        webView.loadData(responseString, "text/html; charset=UTF-8", null);
                        webView.setWebViewClient(new MyWebViewClient());       

                } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }

   private class MyWebViewClient extends WebViewClient {
                @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url) {
                        if (Uri.parse(url).getHost().equals(myURL)) {              
                                return false;
                        }

                        // Otherwise...
                        Toast.makeText(getApplicationContext(), "Stai Abbandonando il sito " + myURL, Toast.LENGTH_SHORT).show();
                        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
                        startActivity(intent);
                        return true;
                }
            }  
        }


Inoltre ho verificato che se uso la funzione
Codice: [Seleziona]
setcookie nel file php, il cookie viene settato nel cell ma non riesco poi a recuperarlo lato php. Io uso i classici comandi $_COOKIE sul file php per leggere il cookie ed infatti tramite browser mobile funziona..ma tramite browser della mia app no..

Non è per caso necessario settare qualche opzione nella mia webView per gestire i cookies??



[UPDATE]
Ho notato che il problema è essenzialmente legato al fatto che utilizzo la webview in questo modo:
Codice: [Seleziona]
webView.setWebViewClient(new MyWebViewClient());
Come posso abilitare la gestione dei cookie?
« Ultima modifica: 23 Gennaio 2013, 15:15:49 CET da salvatore.zagarella »