In order to promote its own App Store, Apple is known for discouraging web apps. Even though PWAs (Progressive Web Application) are gaining popularity among developers, it is difficult to deliver a high quality PWA for Apple devices due to OS level restrictions. At WWDC last week, Apple has announced that it won’t support several Web APIs that enables developers to build powerful web apps. For example, Apple won’t allow web apps to use Bluetooth, NFC and proximity sensor.
Apple has announced that the following Web APIs will not be supported by Safari.
- Web Bluetooth – Allows websites to connect to nearby Bluetooth LE devices.
- Web MIDI API – Allows websites to enumerate, manipulate and access MIDI devices.
- Magnetometer API – Allows websites to access data about the local magnetic field around a user, as detected by the device’s primary magnetometer sensor.
- Web NFC API – Allows websites to communicate with NFC tags through a device’s NFC reader.
- Device Memory API – Allows websites to receive the approximate amount of device memory in gigabytes.
- Network Information API – Provides information about the connection a device is using to communicate with the network and provides a means for scripts to be notified if the connection type changes
- Battery Status API – Allows websites to receive information about the battery status of the hosting device.
- Web Bluetooth Scanning – Allows websites to scan for nearby Bluetooth LE devices.
- Ambient Light Sensor – Lets websites get the current light level or illuminance of the ambient light around the hosting device via the device’s native sensors.
- HDCP Policy Check extension for EME – Allows websites to check for HDCP policies, used in media streaming/playback.
- Proximity Sensor – Allows websites to retrieve data about the distance between a device and an object, as measured by a proximity sensor.
- WebHID – Allows websites to retrieve information about locally connected Human Interface Device (HID) devices.
- Serial API – Allows websites to write and read data from serial interfaces, used by devices such as microcontrollers, 3D printers, and othes.
- Web USB – Lets websites communicate with devices via USB (Universal Serial Bus).
- Geolocation Sensor (background geolocation) – A more modern version of the older Geolocation API that lets websites access geolocation data.
- User Idle Detection – Lets website know when a user is idle.
Apple is claiming that it won’t support the above APIs due to privacy issues. According to Apple, these APIs will allow online advertisers and data analytics firms to fingerprint users and their devices.
WebKit’s first line of defense against fingerprinting is to not implement web features which increase fingerprintability and offer no safe way to protect the user.
Do you agree with Apple’s strategy to not implement web standards due to fingerprinting issues? Let us know your thoughts in the comment section below.