2010-11-27 6 views
0

Je veux construire une application qui prend des informations utilisateur/passer de l'utilisateur et l'utiliser sur une page Web https et extraire le code html brut retourné de cette page.android webview caché, est-ce possible?

Je veux savoir si c'est possible?

Si oui, quel genre de classe je devrais utiliser. Peut-il être fait avec un mécanisme caché webview. Sine je pense que nous pouvons accéder à la variable de script java dans un webview de notre application. Donc c'est possible. Ou je perds mon temps dans cette direction.

Répondre

0

Si vous demandez s'il est possible de « télécharger » une page Web sans réellement l'afficher dans un WebView essayez ceci ...

 HttpClient client=new DefaultHttpClient(); 
     HttpGet getMethod = new HttpGet(Url); 
     ResponseHandler<String> responseHandler=new BasicResponseHandler(); 
     String response = client.execute(getMethod, responseHandler); 

EDIT: Désolé - le paramètre d'URL transmis à HttpGet() ci-dessus est en fait une variable String contenant une URL vers la page wep que vous voulez.

+0

Salut, puis-je l'utiliser dans l'activité principale ou dois-je utiliser un nouveau thread pour que cela fonctionne en arrière-plan ?? – Mavin

+0

Vous pouvez l'utiliser dans l'activité principale si vous souhaitez obtenir rapidement les données dont vous avez besoin. Si vous pensez que cela peut prendre un certain temps, utilisez une asyncTask pour le gérer pour vous. – Squonk

0

Assez vieux sujet ici, mais je vois que je ne suis pas le seul face à cette situation.

Voilà comment je comprends:

objets HttpClient et objets WebView ne partagera pas la même portée « session » dans votre application. Autrement dit, si vous avez cette URL qui effectue l'authentification et démarre une session valide sur un site Web; et à la suite de cela, vous essayez d'ouvrir une de ces pages du site Web - session protégée - à travers le webview, le webview agira comme si aucune session n'était disponible. WebView n'est pas au courant de la session HttpClient.

Une solution est d'appeler l'URL qui commence une session par la méthode de WebView.postUrl comme ceci:

webView.postUrl(url, EncodingUtils.getBytes(postParameters, "BASE64"));

Je suis sûr que cela peut être fait dans un webView caché.