2014-11-02 3 views
1

2.2 및 2.3.4 장치에서 내 앱을 다시 실행했을 때이를 알게되었습니다. 기본적으로 twitter4j의 클라이언트 getAuthenticationURL으로로드 된 WebView가 있습니다. Twitter Login트위터는 더 이상 오래된 Android 기기/webview를 인증하지 않습니까?

모든 사항이 정확하고 "로그인"을 클릭하면 webview는 사용자의 승인을 요청하는 다른 페이지를로드합니다. 거기에서 "Authorize app"은 앱의 맞춤 콜백 및 사용자 토큰을 반환합니다. 버튼은 더 이상 인증 페이지에 웹보기를 보낼 것 "로그인"고 클릭

Twitter Authorization

. 그냥 거기 머물러있을거야. 내 WebViewClient를 디버그하고 onPageStarted을 탐색 할 때 요청이 전송 된 것으로 나타났습니다. 그러나 트위터에서 응답이 없습니다. 또한 내 4.4 Nexus 태블릿의 에는 승인 페이지이 없습니다. "로그인"은 콜백을 승인하고 즉시 반환합니다.

지금까지 내가 그것을 위해 세 가지 대안을 발견 (새로 설치에서 모든 테스트가 완료되었습니다) :

  • 을 클릭하여 응용 프로그램을 다시 시작하고 동일한 URL + 요청 토큰을 다시로드, 취소 할 수 있습니다. 이번에는 로그인이 없습니다. Authorization 페이지를 직접로드하려면 webview가 필요합니다.
  • 이것은 완전히 해킹 된 것입니다. 기본적으로 잘못된 비밀번호를 입력해야하며 비밀번호 재확인 페이지로 전송됩니다. 이번에 올바른 비밀번호를 입력하면 승인 페이지가 표시됩니다. 사실 위의 두 번째 스냅 샷은 이렇게 얻은 것입니다.
  • 해당 URL + 요청 토큰을 브라우저에 붙여 넣으면 도 승인 페이지을 건너 뛰고 즉시 콜백을 반환합니다. 이 기능이 startActivity-for-browser 체계에서 작동하고, 웹뷰에 내장되어 있지 않다면 철저한 연구를하지 못했습니다. 편집 : 로그인시 브라우저가 경고를 발생시키고 내 앱이 onNewIntent에서 가로 챈 콜백을 반환합니다. 승인 페이지가 없습니다. 또한 콜백 URL을 즐 같은 콜백 호스트를 가질 필요 : // 콜백

    enter image description here

내가 얼마 전에 내 나이 기기와의 인증을 포함하여 로그인 페이지를 탐색 할 수 있었다 확신합니다. 이 권한 부여 항목이 손상되었거나 폐기 되었습니까?

답변

0

더 나은 대답이없는 경우 현재 해결책은 별도의 로그인 방법입니다. 나는 나머지 ICS와 WebView를 위해 브라우저에 Intent를 사용한다.