Как получить доступ к родительскому окну, когда вы открываете всплывающее окно для oauth через твиттер, используя gwt? - PullRequest
2 голосов
/ 19 июля 2010

У меня все хорошо работает с твиттером в моем приложении GWT. Однако, когда я использую Window.open (), чтобы попытаться выполнить поток oauth, получить успешный oauth, и твиттер перенаправляет вновь открытое окно на мой URL обратного вызова, у меня возникает проблема.

Единственный способ закрыть окно - это использовать JSNI и вызвать $ wnd.close (). После закрытия окна, которое я использую для oauth, я хочу затем вызвать методы родительского окна, чтобы продолжить. Однако, поскольку я не могу понять, как получить доступ к родительскому окну, я не знаю, как это сделать.

Изначально я пробовал диалоговое окно GWT, которое было удивительным из-за модального диалога и стеклянных фоновых функций, но, к сожалению, не работает, потому что при перенаправлении в twitter, если вы находитесь в iframe, они убивают iframe.

Я размышляю о том, как сохранить объект открывателя окна в java JavaScriptObject, а затем использовать его для вызова моего кода GWT после закрытия окна, которое я использую для oauth.

Кто-нибудь делал это? То, что я пытаюсь сделать, это то, что в основном делает твит через javascript без GWT в своем твиттере.

Спасибо.

1 Ответ

3 голосов
/ 19 июля 2010

Window.open в Javascript возвращает дескриптор дочернего окна. Так как GWT Window.open не возвращает вам этот дескриптор, почему бы вам не использовать свой собственный JSNI, который выполняет вызов javascript и возвращает дескриптор окна? Затем вы можете сохранить этот дескриптор окна в своем приложении GWT и затем использовать ti, чтобы позже закрыть окно, передавая этот дескриптор другому JSNI, который просто выполняет window.close()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...