login method

  1. @override
Future<LoginResult> login({
  1. List<String> permissions = const ['email', 'public_profile'],
  2. LoginBehavior loginBehavior = LoginBehavior.dialogOnly,
  3. LoginTracking loginTracking = LoginTracking.enabled,
  4. String? nonce,
})

calls the FB.login interop

Implementation

@override
Future<LoginResult> login({
  List<String> permissions = const ['email', 'public_profile'],
  LoginBehavior loginBehavior = LoginBehavior.dialogOnly,
  LoginTracking loginTracking = LoginTracking.enabled,
  String? nonce,
}) async {
  if (!_initialized) {
    return LoginResult(
      status: LoginStatus.failed,
      message: 'window.FB is undefined',
    );
  }
  String scope = permissions.join(",");
  Completer<LoginResult> completer = Completer();
  fb.login(
    allowInterop(
      (jsResponse) {
        this._handleResponse(jsResponse).then(
              (result) => completer.complete(result),
            );
      },
    ),
    fb.LoginOptions(
      scope: scope,
      return_scopes: true,
    ),
  );

  return completer.future;
}