14

전 화면 iPhone 최적화 웹 앱을 구축하고 있습니다. 그것은 네이티브 앱처럼 홈페이지에서 시작되어 다음 지시문을 통해 독립형 앱처럼 동작하지만, 단순한 HTML/CSS/JavaScript 일뿐 PhoneGap은 포함되어 있지 않습니다.iPhone 웹 앱의 OAuth 콜백

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

의 OAuth, 트위터로 리디렉션 (또는 다른 OAuth를 제공 업체)에 걸쳐 인증을 시도 내 전체 화면 웹 응용 프로그램에서 모바일 사파리로 나를 걸립니다. Twitter 승인이 완료되면 내 앱으로 리디렉션하여 내 홈페이지 앱을 시작하지 않고 대신 모바일 사파리로 리디렉션합니다. iPhone 홈페이지 웹 앱에서 OAuth를 수행 할 수 있습니까? 그렇다면 OAuth 콜백을 사용하여 내 홈페이지 웹 앱을 다시 시작할 수 있습니까?

+0

방금 ​​프로그래밍 방식으로 앱을 다시 시작할 수있는 방법이 없다고 말하고 싶습니다. (어쩌면 jailbroken 기기에서 정상적인 상태가 아닌) – mattacular

+0

명확히하기 위해. 웹 앱을 제작 중이므로 이미 모바일 사파리에 있습니다. Safari의 인증 페이지가 새 페이지에서 열린다는 것을 의미합니까? –

+2

iPhone 최적화 웹 응용 프로그램을 홈 페이지에 저장하고 거기에서 실행하면 실제로 Safari에서 열리지 않습니다. 글쎄, 그것은 여전히 ​​Safari에 의해 커버 아래에 렌더링,하지만 그것은 독립 실행 형 응용 프로그램처럼 시작됩니다. 그것은 빠른 애플 리케이션 전환 작업 표시 줄과 모든에서 자신의 아이콘을 가져옵니다. 문제는 Twitter에 대한 링크가 해당 컨테이너를 떠난다는 것입니다. – mustpax

답변

14

최근에 비슷한 문제가 있었는데 자바에서 window.location.href="http://example.com/whatever"으로 URL을 설정하면 iOS가 Safari로 전환되지 않습니다. 나는이 방법을 사용하여 사파리로 전환하지 않고 독립 실행 형 웹 앱에서 페이팔 결제 및 페이스 북 로그인 작업을 할 수있었습니다! 양식을 제출하는 경우 JS를 통해 양식을 작성하고 응답에서 리디렉션 URL을 가져온 다음 위치를 설정하십시오. 나중에 앱으로 돌아가는 방법은 외부 서비스 작동 방식에 따라 다릅니다.

좋지 않은 경우 Safoor로 전환하기 전에 팝업 alert('You will be passed to Safari for authentication. Reload this app afterwards.')을 할 수 있습니다. 놀랍지 만 자동으로 앱을 전환하는 것보다 뛰어납니다.

+0

Google OAuth는 특정 사용 권한 범위 (예 : https://www.googleapis.com/auth/youtube)를 요청하고 로그인과 관련된 여러 계정이있는 경우 '계정 선택'화면에서 Safari로 전환을 계속 주장합니다. – Dunc