requestPermission method

  1. @override
Future<CompassAvailability> requestPermission()
override

Asks the user for sensor permission where the platform needs it.

Implementation

@override
Future<CompassAvailability> requestPermission() async {
  final availability = await checkAvailability();
  if (availability != CompassAvailability.permissionRequired) {
    return availability;
  }
  try {
    final promise = _deviceOrientationEvent!
        .callMethod<JSPromise<JSString>>('requestPermission'.toJS);
    final answer = (await promise.toDart).toDart;
    _permissionGranted = answer == 'granted';
    return _permissionGranted
        ? CompassAvailability.available
        : CompassAvailability.permissionDenied;
  } catch (_) {
    return CompassAvailability.permissionDenied;
  }
}