2

ネイティブ コードを使用して、Flutter 用の Facebook 認証プラグインを作成しようとしています。完全にネイティブなテスト プロジェクトで動作するコードを取得しましたが、Android プラグイン プロジェクトで動作させることができません。私は Android の人間ではないので、これに関する知識は非常に限られています。しかし、これは私が持っているものです:

public class FacebookSignInPlugin implements MethodCallHandler {

  CallbackManager callbackManager;
  AccessToken token;

  /**
   * Plugin registration.
   */
  public static void registerWith(Registrar registrar) {
    final MethodChannel channel = new MethodChannel(registrar.messenger(), "facebook_sign_in");
    channel.setMethodCallHandler(new FacebookSignInPlugin());
  }


  @Override
  public void onMethodCall(MethodCall call, Result result) {
    if (call.method.equals("signInUser")) {
      callbackManager = CallbackManager.Factory.create();
      LoginManager.getInstance().registerCallback(callbackManager, new     FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {

          token = loginResult.getAccessToken();
          Log.d("Facebook", token.toString());
        }

        @Override
        public void onCancel() {
          System.out.println("cancel");
          Log.d("Facebook", "Cancel");
        }

        @Override
        public void onError(FacebookException error) {

        }
      });
      login();
      result.success("It works on Android");
    } else {
      result.notImplemented();
    }
  }

  @Override
  protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    callbackManager.onActivityResult(requestCode, resultCode, data);
  }

  public void login() {
    LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "user_friends"));
  }

  public void logout() {
    LoginManager.getInstance().logOut();
  }
}

最後の 2 つの機能、ログイン、ログアウトを使用したいと思います。しかし、メソッド「onActivityResult」ではonActivityResultを解決できないという問題が発生し、「ログイン」ではloginWithReadPermissionsで同じ問題が発生しています。すべてが正しくインポートされるはずです。役立つAndroidの経験を持つ人はいますか?

4

2 に答える 2