fix:推送权限弹窗时序问题
This commit is contained in:
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();
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user