flutter 3.3.9 버전 입니다.
기존에는 안드로이드를 이용하여 카카오 로그인 시 웹로그인이 정상적으로 적용이 되어 로그인이 되었습니다.
그 후 ios 카카오 로그인 연동 이 후 안드로이드 애뮬레이터 로그인을 진행 할시
“네이티브키” links are blocked 라는 문구가 뜨고 있습니다… 로그나 이런 부분은 뜨는게 없어 확인 할 길이 없어 문의 드립니다.
ios는 정상적으로 카카오 로그인이 됩니다.
문의 답변 한 번 부탁드리겠습니다.
감사합니다!
안녕하세요.
아래 Android Flutter 프로젝트 설정 내용이 적용되셨는지 확인 부탁드립니다.
Flutter | Kakao Developers Flutter
넷 해당 프로젝 설정 내용이 적용 되어 있습니다!
AndroidManifest.xml 해당 파일에도 적용을 하였습니다.
ios연동 이후 부터 안드로이드 기기에서 카카오 웹 로그인 부분이 문제가 발생된 상태입니다.
보통 프로젝트 구성상 이슈가 있을 때, 오동작하게 되는데요
아래 문서에서 샘플코드 구성을 참고부탁드립니다.
Kakao Developers
답변해주셔서 감사합니다
현재 해당 오류 관련하여
PlatformException(REDIRECT_URL_MISMATCH, Expected: {카카오nativekey}://oauth, Actual: null, null, null)
문구가 발생하여 혹시 이와 관련해서도 답변 한번 부탁드려도 괜찮으실가요?
1개의 좋아요
안녕하세요.
확인을 위해 앱 ID 부탁드립니다.
앱ID
https://developers.kakao.com/ 의 내 애플리케이션>앱 설정>요약 정보 : 기본정보에 있는 앱 ID
숫자로된 ID 입니다
ex) 123456
AndroidManifest.xml , SDK 초기화 및 카카오로그인 코드 공유 부탁드립니다.
네 AndroidManifest.xml 코드 중 카카오 부분입니다!
<activity
android:name="com.kakao.sdk.flutter.AuthCodeCustomTabsActivity"
android:exported="true">
<intent-filter android:label="flutter_web_auth">
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- Redirect URI, "kakao${YOUR_NATIVE_APP_KEY}://oauth" 형식 -->
<data android:scheme="카카오네이티브키" android:host="oauth"/>
<data android:host="kakaolink" android:scheme="카카오네이티브키" />
</intent-filter>
</activity>
SDK 초기화 코드입니다.
void main() async {
WidgetsFlutterBinding.ensureInitialized();
KakaoSdk.init(nativeAppKey:KAKAO_NATIVE_APP_KEY);
MobileAds.instance.initialize(); // 모바일 광고 SDK 초기화
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
runApp(const MyApp());
}
현재 SDK초기화 코드를 ios 폴더의 AppDelegate.swift 에도 사용중에 있습니다.
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
KakaoSDK.initSDK(appKey: "카카오네이티브키")
FirebaseApp.configure()
GeneratedPluginRegistrant.register(with: self)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}
로그인 코드 입니다.
try {
if(isInstalled){
OAuthToken token = await UserApi.instance.loginWithKakaoTalk();
print('로그인 성공 ${token.accessToken}');
Get.offAll(IntroScreen());
}else{
OAuthToken token = await UserApi.instance.loginWithKakaoAccount();
print('로그인 성공 ${token.accessToken}');
Get.offAll(IntroScreen());
}
user = await kakao.UserApi.instance.me();
final customToken = await FirebaseService().createCustomToken({
'uid': user!.id.toString(),
'displayName': user!.kakaoAccount?.profile?.nickname,
'email': user!.kakaoAccount!.email!,
'photoURL': user!.kakaoAccount!.profile!.profileImageUrl,
});
await FirebaseAuth.instance.signInWithCustomToken(customToken);
var currentUser = await FirebaseService.findUserByEmail(
user!.kakaoAccount!.email!);
if (currentUser == null) {
await FirebaseAuth.instance.signInWithCustomToken(customToken);
EasyLoading.showInfo("회원가입 진행 필요");
await FirebaseFirestore.instance
.collection("users")
.doc(user!.kakaoAccount!.email!)
.set({
"email": user!.kakaoAccount!.email!,
"provider": "kakao",
"createdAt": DateTime.now(),
"loggedAt": DateTime.now(),
"name": user!.kakaoAccount!.profile!.nickname,
"profileImage": user!.kakaoAccount!.profile!.profileImageUrl,
});
currentUser = await FirebaseService.findUserByEmail(user!.kakaoAccount!.email!);
Get.offAll(() => privateSettingScreen());
}else{
UserService.to.currentUser.value = currentUser;
Get.offAll(() => mainScreen());
}
} catch (error) {
print('로그인 실패 $error');
Get.offAll(() => LoginScreen());
}
감사합니다!
AndroidManifest.xml 에서 AuthCodeCustomTabsActivity 설정 확인 부탁드립니다.
가이드와 다르게 설정되어 있습니다.
다른 부분도 샘플코드와 비교 검토 부탁드립니다.
대표적으로 잘못된 설정값
<data android:mimeType="text/plain" />
1개의 좋아요
너무 감사드립니다… ㅠㅠ
위 값을 제거 하고 빌드하여 해당 오류 해결 되었습니다.
감사합니다!