12 votes

Transmettre un cookie au navigateur via Intent

J'ai enregistré un cookie dans Android. Maintenant je veux le passer dans l'intention de mon navigateur. Regardez mon code actuel :

Intent browser = new Intent("android.intent.action.VIEW",
                            Uri.parse("http://mypage.php/memberpagethatrequireacookie.php"));
//putExtra cannot take these arguments -> browser.putExtra("org.apache.http.cookie.Cookie", cookie);
startActivity(browser);

Je veux qu'il soit stocké temporairement dans mon navigateur pour que ma page membre se charge correctement. Mon cookie est créé avec succès à partir de la requête HTTP et je l'attribue à un fichier List<Cookie> cookie; Dites-moi si je dois fournir un peu plus de code.

Des idées ? Merci d'avance !

12voto

CommonsWare Points 402670

Le Navigateur n'a pas de document Intent et encore moins un qui vous permettrait d'injecter un cookie. Et, bien sûr, l'utilisateur peut utiliser un autre navigateur.

Vous pouvez utiliser WebView dans votre application, et vous pouvez utiliser le CookieManager pour injecter votre cookie dans le WebView L'environnement de l'entreprise.

5voto

Satoshi Points 96

Voici la réponse qui utilise Android.proveder.Browser :

J'ai un objet Map dans lequel j'ai stocké les informations d'en-tête que je veux transmettre. Puis ce qui suit :

Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
Bundle bundle = new Bundle();
if(mExtraHeader!=null){
 for(String key: mExtraHeader.keySet()){
  bundle.putString(key, mExtraHeader.get(key));
 }
}
i.putExtra(Browser.EXTRA_HEADERS, bundle);
startActivity(i);

Comme l'a mentionné l'autre personne, cela ne fonctionnerait qu'avec le navigateur par défaut et les autres navigateurs n'auraient pas Browser.EXTRA_HEADERS je suppose. Ressource : http://gitorious.org/rowboat/packages-apps-browser/blobs/a563d09392905140893d7a017dd63721577e1953/src/com/Android/browser/BrowserActivity.java

0voto

claudius Points 121

Le code ci-dessus fonctionne bien pour définir les en-têtes (merci pour cela), mais je n'ai pas pu définir les cookies de cette façon. Ce que je soupçonne, c'est que si le navigateur Web a déjà des cookies stockés pour l'URL cible, il écrasera les cookies créés à l'aide de EXTRA_HEADERS.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X