ネイティブ コードを使用して、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の経験を持つ人はいますか?