Commit 528f3532ae1c504683967b55cbba5d2df3e41b03

Authored by 常守达
1 parent 02c804cd

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

@@ -785,10 +785,10 @@ class TodayController extends GetMaterialController { @@ -785,10 +785,10 @@ class TodayController extends GetMaterialController {
785 } 785 }
786 786
787 // 未决定 → 弹出系统授权弹窗 787 // 未决定 → 弹出系统授权弹窗
788 - final result = await Permission.notification.request();  
789 - AppLogger.d(result.isGranted  
790 - ? 'Notification authorization granted'  
791 - : 'Notification authorization skipped'); 788 + final result = await _platformHostApi.requestNotificationAuth();
  789 + // AppLogger.d(result.isGranted
  790 + // ? 'Notification authorization granted'
  791 + // : 'Notification authorization skipped');
792 } catch (error) { 792 } catch (error) {
793 AppLogger.e('Notification authorization failed: $error'); 793 AppLogger.e('Notification authorization failed: $error');
794 } 794 }
@@ -97,7 +97,9 @@ class LoginController extends GetxController { @@ -97,7 +97,9 @@ class LoginController extends GetxController {
97 return; 97 return;
98 } 98 }
99 try { 99 try {
100 - final result = await PlatformHostApi().requestAppleSignIn(); 100 + final result = await LoadingService.instance.run(() async {
  101 + return await PlatformHostApi().requestAppleSignIn();
  102 + });
101 // result 为 null 或 identityToken 为空,说明用户取消或苹果授权失败 103 // result 为 null 或 identityToken 为空,说明用户取消或苹果授权失败
102 if (result == null || 104 if (result == null ||
103 result.identityToken?.isNotEmpty != true || 105 result.identityToken?.isNotEmpty != true ||
@@ -7,6 +7,7 @@ import 'package:doublefeel_flutter/data/local/user_account_storage.dart'; @@ -7,6 +7,7 @@ import 'package:doublefeel_flutter/data/local/user_account_storage.dart';
7 import 'package:doublefeel_flutter/data/local/user_preferences_storage.dart'; 7 import 'package:doublefeel_flutter/data/local/user_preferences_storage.dart';
8 import 'package:doublefeel_flutter/pigeon/health_kit_api.g.dart'; 8 import 'package:doublefeel_flutter/pigeon/health_kit_api.g.dart';
9 import 'package:doublefeel_flutter/pigeon/health_kit_raw_data_api.g.dart'; 9 import 'package:doublefeel_flutter/pigeon/health_kit_raw_data_api.g.dart';
  10 +import 'package:doublefeel_flutter/pigeon/platform_api.g.dart';
10 import 'package:get/get.dart'; 11 import 'package:get/get.dart';
11 import 'package:permission_handler/permission_handler.dart'; 12 import 'package:permission_handler/permission_handler.dart';
12 13
@@ -23,6 +24,7 @@ class UserOnboardingController extends GetxController { @@ -23,6 +24,7 @@ class UserOnboardingController extends GetxController {
23 UserOnboardingController(this._userApi); 24 UserOnboardingController(this._userApi);
24 final UserApi _userApi; 25 final UserApi _userApi;
25 final HealthKitHostApi _hostApi = HealthKitHostApi(); 26 final HealthKitHostApi _hostApi = HealthKitHostApi();
  27 + final PlatformHostApi _platformHostApi = PlatformHostApi();
26 28
27 bool hasSelection(int pageIndex) => 29 bool hasSelection(int pageIndex) =>
28 selections[pageIndex]?.isNotEmpty ?? false; 30 selections[pageIndex]?.isNotEmpty ?? false;
@@ -275,10 +277,7 @@ class UserOnboardingController extends GetxController { @@ -275,10 +277,7 @@ class UserOnboardingController extends GetxController {
275 } 277 }
276 278
277 // 未决定 → 弹出系统授权弹窗 279 // 未决定 → 弹出系统授权弹窗
278 - final result = await Permission.notification.request();  
279 - AppLogger.d(result.isGranted  
280 - ? 'Notification authorization granted'  
281 - : 'Notification authorization skipped'); 280 + final result = await _platformHostApi.requestNotificationAuth();
282 } catch (error) { 281 } catch (error) {
283 AppLogger.e('Notification authorization failed: $error'); 282 AppLogger.e('Notification authorization failed: $error');
284 } 283 }