앱의 실행기 활동을 LoginActivity라고합니다 (같은 이름의 Facebook SDK 활동과 혼동하지 마세요). 여기에는 아래에 표시된 startFacebookLogin() 메소드를 시작하는 "Facebook에 로그인"버튼이 있습니다. 앱이 Facebook 사용자 계정에 액세스 할 수 있다는 점에서 결과가 효과적입니다. 그러나 사용자를위한 프로세스는 매우 못 생기고 전면에 여러 개의 화면이 깜박입니다. - startFacebookLogin()를 Android에서 악성 Facebook 인증 프로세스가 개선 되었습니까?
- LoginActivity 버튼에서 로그인을 보여주는 시작하고 사용자가 버튼을 탭 :이 일어나는 것이다 이전에 인증 된 경우 즉시 종료
- 응용의 LoginActivity은 (하지 페이스 북의가) 볼을 다시
- MainActivity는
로그인 버튼을 누른 후에는 전체 화면이 네 번 다시 그려지고 Facebook 인증 화면이 흰색이지만 앱의 모든 활동이 어둡습니다. 꽤 시각적 인 폭행입니다. 이 화면 중 일부는 분명히 5 번이지만 필수 일 수도 있습니다 ...
Facebook SDK는 사용자가이 앱으로 이미 인증 받았기 때문에 곧바로 로그인하게됩니다. UI가 전혀 표시되지 않는 이유는 무엇입니까? ? 이 문제를 해결할 방법이 없나요? 아니면 Facebook SDK와 함께 살아야합니다.
사용자가 로그인해야하는 경우에도 위의 2와 3의 불만을 해결하기 위해 수행 할 수있는 작업이 있습니까? Facebook SDK가 UI를 열지 않고 사용자가 인증되었는지 확인할 수 있습니까?
private void startFacebookLogin() {
Session.openActiveSession(this, true, new Session.StatusCallback() {
// callback when session changes state
@Override
public void call(Session session, SessionState state, Exception exception) {
if (session.isOpened()) {
Request.newMeRequest(session, new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user, Response response) {
if (user != null) {
saveUserNameAndStartMainActivity(user.getId());
}
}
}).executeAsync();
}
}
});
}
private void saveUserNameAndStartMainActivity(String userId) {
((EmbarApplication)getApplication()).saveUserId(userId); // saves to shared prefs
openMainActivity(); // starts the main activity
}