Commit 528f3532ae1c504683967b55cbba5d2df3e41b03

Authored by 常守达
1 parent 02c804cd

fix(login): 苹果登录、通知权限

... ... @@ -785,10 +785,10 @@ class TodayController extends GetMaterialController {
}
// 未决定 → 弹出系统授权弹窗
final result = await Permission.notification.request();
AppLogger.d(result.isGranted
? 'Notification authorization granted'
: 'Notification authorization skipped');
final result = await _platformHostApi.requestNotificationAuth();
// AppLogger.d(result.isGranted
// ? 'Notification authorization granted'
// : 'Notification authorization skipped');
} catch (error) {
AppLogger.e('Notification authorization failed: $error');
}
... ...
... ... @@ -97,7 +97,9 @@ class LoginController extends GetxController {
return;
}
try {
final result = await PlatformHostApi().requestAppleSignIn();
final result = await LoadingService.instance.run(() async {
return await PlatformHostApi().requestAppleSignIn();
});
// result 为 null 或 identityToken 为空,说明用户取消或苹果授权失败
if (result == null ||
result.identityToken?.isNotEmpty != true ||
... ...
... ... @@ -7,6 +7,7 @@ import 'package:doublefeel_flutter/data/local/user_account_storage.dart';
import 'package:doublefeel_flutter/data/local/user_preferences_storage.dart';
import 'package:doublefeel_flutter/pigeon/health_kit_api.g.dart';
import 'package:doublefeel_flutter/pigeon/health_kit_raw_data_api.g.dart';
import 'package:doublefeel_flutter/pigeon/platform_api.g.dart';
import 'package:get/get.dart';
import 'package:permission_handler/permission_handler.dart';
... ... @@ -23,6 +24,7 @@ class UserOnboardingController extends GetxController {
UserOnboardingController(this._userApi);
final UserApi _userApi;
final HealthKitHostApi _hostApi = HealthKitHostApi();
final PlatformHostApi _platformHostApi = PlatformHostApi();
bool hasSelection(int pageIndex) =>
selections[pageIndex]?.isNotEmpty ?? false;
... ... @@ -275,10 +277,7 @@ class UserOnboardingController extends GetxController {
}
// 未决定 → 弹出系统授权弹窗
final result = await Permission.notification.request();
AppLogger.d(result.isGranted
? 'Notification authorization granted'
: 'Notification authorization skipped');
final result = await _platformHostApi.requestNotificationAuth();
} catch (error) {
AppLogger.e('Notification authorization failed: $error');
}
... ...