checkBrowserCapabilities method

Future<Map<String, dynamic>> checkBrowserCapabilities()

Implementation

Future<Map<String, dynamic>> checkBrowserCapabilities() async {
  final capabilities = <String, dynamic>{};

  // Check protocol and hostname
  capabilities['protocol'] = web.window.location.protocol;
  capabilities['hostname'] = web.window.location.hostname;
  capabilities['isHttps'] = web.window.location.protocol.startsWith('https');
  capabilities['isLocalhost'] = web.window.location.hostname == 'localhost';

  // Check media devices
  capabilities['mediaDevices'] = true;
  capabilities['getUserMedia'] = true;

  // Check geolocation
  capabilities['geolocation'] = true;
  capabilities['getCurrentPosition'] = true;

  // Check notifications
  try {
    capabilities['notifications'] = true;
    capabilities['notificationPermission'] = web.Notification.permission;
  } catch (e) {
    capabilities['notifications'] = false;
    capabilities['notificationError'] = e.toString();
  }

  // Check permissions API
  capabilities['permissionsAPI'] = true;

  // Check user agent for debugging
  capabilities['userAgent'] = web.window.navigator.userAgent;

  return capabilities;
}