Enhance Your Mobile Web Pages with 12 JavaScript APIs

There are some new powerful APIs available

Zachary Lee
6 min readJun 9, 2023
Photo by Francesco on Unsplash

As the mobile market continues to grow, it’s crucial for developers to optimize their web pages for mobile devices. In this article, we will explore 12 JavaScript APIs that can enhance your mobile web pages and provide a better UX.

1. Network Information API

The Network Information API allows web applications to retrieve information about the user’s network connection, such as the type of connection (e.g., WiFi, cellular) and its effective bandwidth. This API can be valuable for optimizing content delivery, managing offline caching, or providing tailored experiences based on network conditions.

To access network information, you can use the navigator.connection object:

const connection =
navigator.connection ||
navigator.mozConnection ||
navigator.webkitConnection;
const effectiveType = connection.effectiveType;
const downlink = connection.downlink;

console.log('connection: ', connection);
console.log('Effective connection type:', effectiveType);
console.log('Downlink speed:', downlink);

2. Geolocation API

The Geolocation API allows web applications to retrieve the geographical location of a user’s device. This can be incredibly useful for location-based services, mapping applications, and personalized content delivery. By obtaining the user’s location, you can provide targeted information, directions, or location-specific features.

For instance, to retrieve the user’s current location, you can use the getCurrentPosition() method:

navigator.geolocation.getCurrentPosition(function success(position) {
const latitude = position.coords.latitude;
const longitude = position.coords.longitude;
console.log('Latitude:', latitude);
console.log('Longitude:', longitude);
});

3. Media Capture API

The Media Capture API allows web applications to access the device’s media capture capabilities, such as the camera and microphone. This API enables you to integrate image and video capture functionalities directly into your web application. It’s particularly useful for applications that require photo or video uploads, video conferencing, or augmented reality experiences.

To capture media from the device’s camera, you can use the getUserMedia() method:

navigator.mediaDevices
.getUserMedia({ video: true, audio: false })
.then(function (stream) {
// Do something with the media stream
})
.catch(function (error) {
// Handle the error
});

4. Payment Request API

The Payment Request API simplifies the integration of secure payment flows into web applications. It provides a standardized way to collect payment information and initiate payment requests, making it easier for users to make payments and improving the overall checkout experience. This API is particularly valuable for e-commerce websites or any application that involves financial transactions.

To initiate a payment request, you need to create a PaymentRequest object:

const supportedPaymentMethods = [
{
supportedMethods: 'basic-card',
data: {
supportedNetworks: ['visa', 'mastercard'],
},
},
];

const paymentDetails = {
total: {
label: 'Total',
amount: { currency: 'USD', value: '10.00' },
},
};

const paymentRequest = new PaymentRequest(
supportedPaymentMethods,
paymentDetails,
);

paymentRequest
.show()
.then(function (paymentResponse) {
console.log('paymentResponse: ', paymentResponse);
// Process the payment response
})
.catch(function (error) {
console.log('error: ', error);
// Handle errors
});

By integrating the Payment Request API, you can streamline the payment process and provide a seamless checkout experience for your users.

5. Battery Status API

The Battery Status API provides valuable information about the device’s battery level and status. It allows you to determine if the battery is charging, how much time is left before it fully discharges, and the current battery level. For instance:

navigator.getBattery().then(console.log);

6. Web Bluetooth API

The Web Bluetooth API allows web applications to communicate with Bluetooth devices, opening up possibilities for interacting with IoT devices and creating innovative connected experiences. This API enables web applications to discover nearby Bluetooth devices, establish connections, and exchange data with them. It’s particularly useful for applications that involve IoT devices, wearables, or home automation systems.

To discover nearby Bluetooth devices and connect to them, you can use the requestDevice() method:

navigator.bluetooth
.requestDevice({ filters: [{ services: ['heart_rate'] }] })
.then(function (device) {
// Connect to the selected device
})
.catch(function (error) {
// Handle errors
});

Once connected, you can interact with the Bluetooth device using the provided APIs and exchange data as needed.

7. Ambient Light Sensor API

The Ambient Light Sensor API allows web applications to access the ambient light sensor of a device. This API provides information about the intensity of ambient light, enabling applications to adjust their display or behavior based on the lighting conditions. It’s particularly useful for applications that require adaptive brightness, readability optimization, or energy efficiency.

To retrieve the current ambient light intensity, you can create an AmbientLightSensor object and listen for changes:

var sensor = new AmbientLightSensor();

sensor.onreading = function() {
var illuminance = sensor.illuminance;
console.log('Illuminance:', illuminance);
};

sensor.start();

By utilizing the Ambient Light Sensor API, you can create web applications that adapt to lighting conditions, enhancing readability and user experience.

8. Web Notifications API

Notifications play a vital role in mobile apps, alerting users to important events or updates. The Web Notifications API standardizes the way developers create notifications within web applications. While the appearance and behavior of notifications may vary across different browsers, this API offers a consistent way to notify users outside the context of a web page.

Creating a notification is as simple as constructing a Notification object with the desired title and body:

const notification = new Notification('Email received', { body: 'You received an email. Read it now!' });

9. Accelerometer API

The Accelerometer API allows web applications to access the device’s accelerometer sensor. This API provides information about the device’s acceleration along the x, y, and z axes, enabling applications to detect device movement, orientation, or tilt. It’s particularly useful for applications that involve motion-based interactions, gaming, or virtual reality experiences.

To retrieve accelerometer data, you can create an Accelerometer object and listen for changes:

const accelerometer = new Accelerometer({ frequency: 60 });

accelerometer.addEventListener('reading', () => {
const { x, y, z } = accelerometer;

console.log('Acceleration X:', x);
console.log('Acceleration Y:', y);
console.log('Acceleration Z:', z);
});

accelerometer.start();

10. Media Session API

The Media Session API allows web applications to control media playback, providing a consistent and integrated media control experience across platforms and devices. This API enables developers to customize media notifications, handle media playback actions, and integrate with system media controls.

To handle media playback actions, you can set up event listeners for various media-related events:

navigator.mediaSession.setActionHandler('play', function() {
// Handle play action
});

navigator.mediaSession.setActionHandler('pause', function() {
// Handle pause action
});

// Add more event listeners for other media actions

11. Vibration API

The Vibration API allows web pages to control the device’s vibration capabilities, providing opportunities for creating haptic feedback or simulating effects in games.

Using the Vibration API is straightforward. You can invoke the vibrate() method and specify the duration of the vibration in milliseconds:

navigator.vibrate(3000); // Vibrate for three seconds

12. Device Orientation API

The Device Orientation API provides information about the physical orientation and motion of a device. This API is particularly useful for applications such as navigation or games that rely on device orientation. Although the support for this API varies across browsers, it offers valuable functionality for mobile web applications.

If you want to detect changes in device orientation, you can add an event listener for the deviceorientation event:

window.addEventListener('deviceorientation', function(event) {
console.log('Device orientation:', event.alpha, event.beta, event.gamma);
});

Conclusion

In this article, we explored 12 JavaScript APIs that can empower your mobile web pages and provide a better user experience.

However, it’s important to keep in mind that browser support for these APIs may vary, and not all devices or browsers will have the same level of compatibility. Therefore, it’s crucial to perform feature detection and handle cases where APIs are not supported gracefully. This ensures a consistent experience for users across different platforms.

Thanks for reading! Love these stories? Support me with a membership for monthly handpicked articles. Or join Medium via my link.

--

--