Вход в Facebook и UIWebView

#javascript #ios #facebook #uiwebview

#javascript #iOS #Facebook #uiwebview

Вопрос:

В настоящее время я разрабатываю приложение, которое по сути представляет собой единый веб-просмотр, который позволяет получить доступ к определенному веб-сайту (ужасная идея, которую я знаю, но решение принимается сверху); указанный веб-сайт предлагает возможность входа в систему через Facebook с помощью стандартной процедуры Facebook Connect.

Процесс входа в систему отлично работает в мобильном Safari, но, к сожалению, когда UIWebView пытается сделать то же самое после авторизации, отображается пустая страница, и ничего не происходит. Это, конечно, из-за того, что страница на самом деле является просто JavaScript, который взаимодействует с исходной страницей через postMessage (я думаю!).

Я попытался выполнить поиск, и, хотя это довольно широко известная проблема, все найденные мной решения либо неприменимы, либо не будут работать. Я где-то нашел, что можно передать mode=redirect на URL-адрес oauth, чтобы весь процесс не включал всплывающие окна, что звучит многообещающе, но, насколько я понимаю, это не работает.

Есть ли способ заставить Facebook Connect работать для веб-сайта внутри UIWebView? Я рассматриваю возможность того, чтобы кнопка Facebook вызывала специальный URL-адрес, который я затем прослушивал бы внутри точки доступа, чтобы запустить собственный процесс аутентификации, но, к сожалению, поскольку моя компания не занимается разработкой веб-сайта, такое решение было бы наименее предпочтительным.

Комментарии:

1. Вероятно, это лучший сценарий, чтобы сказать вашему боссу, что это неправильно во многих отношениях.

2. Ха-ха, я знаю, но, к сожалению, он был тем, кто по сути продал приложение клиенту, предполагая, что все будет хорошо, поэтому я не задерживаю дыхание на этом

3. Я знаю, что прошло некоторое время с тех пор, как это было активно, но мне было интересно, нашли ли вы решение? На данный момент я сталкиваюсь с той же проблемой.

4. IIRC мы обошли это, используя пользовательский агент, который содержал стандартный пользовательский агент iOS, а не совершенно другой, и, похоже, процесс таким образом работал нормально. Извините, я не могу ничем помочь, но прошло много времени с тех пор, как я работал над этим проектом, и я не могу вспомнить, что мы в итоге сделали, чтобы заставить его работать