2010-07-18 4 views
2

Je me suis vraiment bien débrouillé avec twitter dans mon application GWT. Cependant, lorsque j'utilise Window.open() pour essayer de faire le flux oauth, obtenir un oauth réussi, et que twitter redirige la fenêtre nouvellement ouverte vers mon URL de rappel, j'ai un problème.Comment accéder à la fenêtre parente lorsque vous ouvrez une fenêtre contextuelle à oauth avec twitter en utilisant gwt?

La seule façon que je peux voir pour fermer la fenêtre est d'utiliser JSNI et d'appeler $ wnd.close(). Après avoir fermé la fenêtre que j'utilise pour oauth, je veux ensuite appeler les méthodes sur la fenêtre parent pour continuer. Cependant, puisque je ne peux pas comprendre comment accéder à la fenêtre parent, je ne sais pas comment faire cela. A l'origine, j'ai essayé une boîte de dialogue GWT qui est géniale en raison du dialogue modal et des fond d'écran en verre, mais ne fonctionne malheureusement pas car lorsque vous redirigez vers twitter, si vous êtes dans un iframe, ils tuent l'iframe. Je pense à quelque chose comme garder l'objet d'ouverture de la fenêtre stocké dans un JavaScriptObject Java, puis l'utiliser pour invoquer mon code GWT après avoir fermé la fenêtre que j'utilise pour oauth.

Quelqu'un at-il fait cela? Ce que j'essaie de faire est essentiellement ce que tweetmeme fait via javascript non GWT dans son twitter oauth.

Merci.

Répondre

3

Window.open dans Javascript renvoie un handle à la fenêtre enfant. Puisque Window.open de GWT ne vous renvoie pas cette poignée, pourquoi n'utilisez-vous pas votre propre JSNI qui fait un appel de javascript et renvoie le handle de fenêtre? Vous pouvez ensuite conserver ce handle de fenêtre dans votre application GWT, puis utiliser ti pour fermer la fenêtre plus tard en passant ce handle à un autre JSNI qui le fait window.close()