Notice for App Developers

To use these methods, the geolocation module must be installed in the native app:

Hierarchy

  • Geolocation

Methods

  • Check permissions status for geolocation resource

    Example:

    const geolocationStatus = await Eitri.geolocation.checkPermission({precision: "precise"})
    console.log(geolocationStatus)

    /* Example output from this console.log:
    {
    status: "DENIED",
    details: {
    precision: "precise"
    }
    }
    */

    🚨 Android only: If executed before the first permission request, the default response is BLOCKED.

    Compatibility Control

    Check module availability:

    const modules = await Eitri.modules();
    if (modules?.geolocation) {
    // Module-based implementation available
    }

    Parameters

    Returns Promise<GeolocationPermissionOutput>

  • Request permission for geolocation resource

    Example:

    const geolocationStatus = await Eitri.geolocation.requestPermission({precision: "approximate"})
    console.log(geolocationStatus)

    /* Example output from this console.log:
    {
    status: "GRANTED",
    details: {
    precision: "approximate"
    }
    }
    */

    Compatibility Control

    Check module availability:

    const modules = await Eitri.modules();
    if (modules?.geolocation) {
    // Module-based implementation available
    }

    Parameters

    Returns Promise<GeolocationPermissionOutput>

  • Get the current location of the device

    Example:

    try {
    const geolocationStatus = await Eitri.geolocation.requestPermission({precision: "precise"})

    if (geolocationStatus.status == "GRANTED") {
    const location = await Eitri.geolocation.getCurrentLocation()
    console.log(location)
    /* Example output from this console.log:
    {
    "latitude": -22.9576466,
    "longitude": -43.1760832
    }
    */
    return
    }

    // handle other permission states
    // inform user

    } catch (e) {
    console.log(e)
    // handle errors and notify user
    }

    Compatibility Control

    Check module availability:

    const modules = await Eitri.modules();
    if (modules?.geolocation) {
    // Module-based implementation available
    }

    Returns Promise<GeolocationRequestOutput>

  • Upgrade to background location permission (Always/Background access)

    This method requests permission to access location when the app is in the background.

    Prerequisites:

    • Foreground/when-in-use permission must already be granted
      • Will throw error if foreground permission not granted

    Platform-specific behavior:

    • Android
      • Shows system dialog for background location access
    • iOS
      • Shows "Change to Always Allow" dialog if when-in-use already granted
    const modules = await Eitri.modules();
    const upgradeToBackgroundPermission = modules?.geolocation?.upgradeToBackgroundPermission;

    if (!upgradeToBackgroundPermission) {
    console.log("upgradeToBackgroundPermission is not available");
    return;
    }

    // First ensure foreground permission
    const foreground = await Eitri.geolocation.requestPermission({precision: "precise"});

    if (foreground.status === "GRANTED") {
    // Then upgrade to background
    const background = await Eitri.geolocation.upgradeToBackgroundPermission();

    if (background.details.backgroundPermission === true) {
    console.log("Background permission granted");
    } else {
    console.log("Background permission denied");
    }
    }

    Compatibility Control

    Check module availability:

    const modules = await Eitri.modules();
    if (modules?.geolocation) {
    // Module-based implementation available
    }

    Returns Promise<GeolocationPermissionOutput>

Generated using TypeDoc