# Features

Wisej.NET Hybrid includes a number of features that are available when building **Hybrid Remote** and **Hybrid Local** applications.

## App Actions

Manages application actions, such as shortcuts to specific parts of the application.

## App Info

Provides methods to interact with the application info in the device's settings.

## App Links

Provides methods to register and deregister application deep links.

## Authenticator

Provides methods to integrate SSO within the application.

## Authentication

**Authentication** can be used to protect sensitive information or premium content within your app. One way is to request biometric authentication, such as using face recognition or fingerprint recognition.

<figure><img src="/files/HFKnNvSws6IKdmex1r4B" alt=""><figcaption></figcaption></figure>

## Barcode Scanning

Wisej.NET Hybrid includes a barcode scanning integration for Android and iOS. The Android implementation is based on Google MLKit. The iOS implementation is based on CoreML & VisionKit.

<figure><img src="/files/kIneafg3X1kwsJT665Ij" alt="" width="222"><figcaption><p>Wisej.NET Hybrid Barcode Scanner</p></figcaption></figure>

## Battery

**Battery** consumption and power sources are important considerations for developers looking to build energy-conscious applications. Developers can determine the current battery level, if the device is being charged, and if energy saver mode is enabled.

## Camera

**Camera** access can be used to take pictures and videos using the device's attached cameras.

## Clipboard

**Clipboard** access can be used to read and write the device's clipboard contents.

{% hint style="warning" %}
Clipboard data is limited to **string** content.
{% endhint %}

## Contacts

Developers can access a hybrid client's device contacts (with permission from the user) with one line of code. When retrieving the device contact, the result will be a JSON representation of the person.

<figure><img src="/files/ebhUdtW2ouTfpjAZbRfB" alt=""><figcaption></figcaption></figure>

## Display

Allows developers to prevent the device's screen from locking. Determine information about the screen orientation and size.

## Email

Allows developers to compose new emails within the application.

## Flashlight (Torch)

Developers can toggle the device's built-in flashlight.

## File System

A common limitation of traditional web applications is access to the device's file system. Wisej.NET Hybrid allows developers to read and write files anywhere on the system that the application has access to.

## Geolocation

Integration geolocation functionality to determine information about the user's current location or proximity to other locations. Use the built-in geocoding feature to determine relevant landmarks for a given location.

## Launcher

Use the launcher to open other installed applications on the device. For example, opening the **Lyft** app:

```csharp
bool supportsUri = Device.Launcher.CanOpenAsync("lyft://");

if (supportsUri)
    Launcher.Default.Open("lyft://ridetype?id=lyft_line");
```

## Lifecycle Events

Determine when the application enters the background, foreground, or is terminated.

## Local Notifications

Schedule local push notifications from within the application that can be triggered on a certain day or time interval.

## Map

Launch the device's installed map application with a predefined location or placemark.

{% content-ref url="/pages/sG4FL9bTmoQXrXOVg422" %}
[Open the Map App](/hybrid/development/open-the-map-app.md)
{% endcontent-ref %}

## Navigation

Show native .NET MAUI XAML views as a modal dialog.

## Network Events

Read information about the device's network status and available connections. Attach to the Device's network events to receive updates about changes.

{% content-ref url="/pages/Tvb3IYIRYBM0S4DxZ6p4" %}
[Detect network connectivity](/hybrid/rest-web-services/detect-network-connectivity.md)
{% endcontent-ref %}

## Offline Database

Use an offline SQLite database to store information while the device doesn't have an internet connection.

{% content-ref url="/pages/qKoDi4Tl6lnBrTmGfXVO" %}
[Store Data locally with SQLite](/hybrid/storage/store-data-locally-with-sqlite.md)
{% endcontent-ref %}

## Permissions

**Permissions** can be checked and requested at run-time to provide access to different device capabilities.

## Preferences

Preferences can be used to store key/value pairs on the client device.

{% content-ref url="/pages/aaX5uY5ikXFufD1cgGp1" %}
[Compare Storage Options](/hybrid/storage/compare-storage-options.md)
{% endcontent-ref %}

## Secure Storage

Secure storage can be used to store secured key/value pairs on the client device.

{% content-ref url="/pages/aaX5uY5ikXFufD1cgGp1" %}
[Compare Storage Options](/hybrid/storage/compare-storage-options.md)
{% endcontent-ref %}

## Status Bar

The device's status bar text and background colors can be manipulated with a few lines of code.

<figure><img src="/files/PYlRr4fSpV9q69CrtymR" alt=""><figcaption></figcaption></figure>

## Version Tracking

**Version Tracking** can be used to check the applications version and build numbers along with seeing additional information such as if it's the first time the application launched.

## Custom

Need an integration that isn't listed here? Contact us at <sales@wisej.com>.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.wisej.com/hybrid/start/features.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
