fix:推送权限弹窗时序问题

This commit is contained in:
jingyun committed 2026-09-01 15:03:27 +08:00
1 parent 33235f450b
commit afee4b5aec
2 files changed
+27 -5

No files matched your search

@@ -73,10 +73,26 @@ class NotificationPermissionTip extends StatelessWidget {
}
}
Future<void> showNotificationPermissionTip(BuildContext context) async {
/// Keeps the explanation visible while Android's system permission dialog is
/// presented. Call [remove] after the permission request completes.
NotificationPermissionTipHandle showNotificationPermissionTip(
BuildContext context,
) {
final overlay = Overlay.of(context, rootOverlay: true);
final entry = OverlayEntry(builder: (_) => const NotificationPermissionTip());
overlay.insert(entry);
await Future<void>.delayed(const Duration(milliseconds: 500));
entry.remove();
return NotificationPermissionTipHandle._(entry);
}
class NotificationPermissionTipHandle {
NotificationPermissionTipHandle._(this._entry);
final OverlayEntry _entry;
bool _isRemoved = false;
void remove() {
if (_isRemoved) return;
_isRemoved = true;
_entry.remove();
}
}