OAuth обратные вызовы в iPhone-приложениях iPhone

Я создаю полноэкранное оптимизированное iPhone приложение для iPhone. Он запускается с домашней страницы, как родное приложение, и ведет себя как автономное приложение с помощью следующей директивы, но это просто HTML/CSS/JavaScript, не задействованный PhoneGap.

<meta name="apple-mobile web-app-capable" content="yes" />

При попытке аутентификации через OAuth перенаправление на Twitter (или любой другой поставщик OAuth) выводит меня из моего полноэкранного веб-приложения и в Mobile Safari. После завершения авторизации в Twitter, перенаправление обратно в мое приложение не запускает мое домашнее приложение, а просто перенаправляется в Mobile Safari. Возможно ли сделать OAuth внутри веб-приложения домашней страницы iPhone? Коротко это, могу ли я получить обратный вызов OAuth для повторного запуска моего веб-приложения на главной странице?

Ответы

Ответ 1

Недавно у меня была аналогичная проблема, и выяснилось, что если вы установите URL-адрес в Javascript с помощью window.location.href="http://example.com/whatever", то iOS не переключится на Safari. Мне удалось получить PayPal checkout и Facebook, работая в автономных веб-приложениях, не переключаясь на сафари, используя этот метод! Если вы отправляете форму, сделайте это через JS и получите URL-адрес перенаправления из ответа, а затем укажите местоположение. Что касается последующей передачи вашего приложения, это зависит от того, как работает внешняя служба.

Если это нехорошо, вы можете сделать всплывающее окно alert('You will be passed to Safari for authentication. Reload this app afterwards.'), прежде чем перейти к Safari. Не здорово, но лучше, чем удивлять их при автоматическом переключении приложений!

Ответ 2

Я предполагаю, что у вас есть метатег "manifest" для ссылки на файл manifest.json.

Я предлагаю вам сделать следующий обходной путь. Он отлично работает в веб-приложении ios safari:

fooobar.com/info/16293065/...