Comparison of APIs in MiniApps, W3C specs, and PWAs

Category Features W3C Spec Status PWA.next (Chrome, Edge) QuickApp (Xiaomi, Huawei) Alipay Mini Program Baidu Smart Mini Program
OS Android     Yes Yes Yes Yes
OS iOS     Partial No Yes Yes
OS Chrome OS     Yes (Chrome 67+) No No No
OS Windows     Yes (Chrome 70+) No No No
OS Linux     Yes (Chrome 70+) No No No
Engine Engine     Browser Engines
Native, WebView, V8 No Chromium layout engine but with V8 engine, more lightweight.
Providing pure WebAPIs to app developers, Web JS APIs are mapped from Android native APIs and part of standard WebAPIs.
Template part (with HTML tags) in .ux file mapping to single android native views and combined view components, provided native performance experiences.
CSS subset: Mapping to attributes of Android View (e.g. position, color)
Native, WebView, V8 Native (rendering) + WebView (rendering) + Worker (Data storage and business logic) + V8 (use UC browser engine)
Native, WebView, V8 Rendering: Native+WebView
Logic: V8/JavaScript Core
File format Page     .html, .js, .css .ux, .js, .css .axml, .js, .acss .swan, .js, .css
ES6 ES6     Yes Yes Yes Yes
Release Audit     No Yes Yes Yes
Release App store integration    
Partial
  • Android (Yes): The Trusted Web Activities on Android allows App Store integration. Additionally TWAs have access to Google Pay (Digital Goods API). Cons: Lack of PWA support in China App Stores on Android and PRC custom Android ROMs.
  • Windows (Yes): The Microsoft Store on Windows is a trusted single location for customers to discover and install PWAs for their Windows PC.
  • iOS (Yes): The PWABuilder supports to publish PWAs to the App Store and gain new iPhone and iPad users.
  • Chrome OS: Will even launch the PWA window on Chrome OS. Cons: Zero market share in China.
Yes
Yes Can be used within Alibaba's native apps including Alipay, Taobao, DingTalk, Gaode, ELE.me
Yes Can be used within Baidu App and Open Source Union apps, such as iQiyi, Bilibili, Wifi and so on
Modular Customized Component
Web Components
REC Yes Yes Yes Yes
Installation Add to home screen Web Application Manifest WD Yes Yes
Yes Via A2HS feature on Safari
Yes
Discoverable Discoverable     Yes
Yes Search within system search bar, management apps, app store, browsers, home page etc.
Yes Search within Alipay.
Yes Search with Baidu search engine.
Application Lifecycle Web Share Web Share API WD Yes
Yes @system.share, @service.share
Yes onShareAppMessage
Yes
Application Lifecycle Splash screen Splash Screen in Manifest On Hold Yes Yes No No
Application Lifecycle Service Workers Service Workers Nightly WD Yes No Yes
NoNo necessary
Application Lifecycle Manifest Web App Manifest WD Yes
Yesmanifest.json
Yesapp.json
Yesapp.json
Application Lifecycle App Info Web App Manifest + Application Information WD
Yes Manifest metadata
Yes @system.app
No No
User Interaction Fullscreen Media Queries - Display Mode WD Yes
Yes manifest's display.fullscreen
Yes Yes
User Interaction Badging Badging API CGR
Yes navigator.setAppBadge()
Badge implementation on host platforms: Android 8.0 (Oreo) or higher, Windows 7 or higher, iOS has support for badging APIs, not currently supported on Chrome OS.
No
InternalInternal (in tabs)
InternalInternal (in tabs)
User Interaction Dialogs HTML dialog element Living Standard Yes
Yes@system.prompt
Yespopup component
Yespopup component
User Interaction Vibration Vibration API REC Yes
Yes@system.vibrator
Yesmy.vibrate
Yesswan.vibrateLong, swan.vibrateShort
User Interaction Notification Notifications API Living Standard Yes
Yes@system.notification
YesNotice
YesTemplate Message
Customer Service Message
User Interaction Screen Orientation The Screen Orientation API WD Yes
Partialorientation in Manifest
No
Yesswan.onDeviceMotionChange
User Interaction User Idle Detection User Idle Detection DCGR
Yes IdleDetector()
Chrome 94 or higher on Android and desktop.
No No No
User Interaction Wake Lock Wake Lock API WD Yes
Yesbrightness.setKeepScreenOn
Partialonly screen lock my.setKeepScreenOn
Partialonly screen lock swan.setKeepScreenOn
User Interaction Clipboard Clipboard API and events WD Yes
Yes@system.clipboard
Yesmy.getClipboard, my.setClipboard
Yesswan.setClipboardData, swan.getClipboardData
User Interaction execCommand() execCommand Discontinued No No No No
User Interaction Navigation (History) API
Shared Element Transitions
Navigation API
Shared Element Transitions
DCGR
Yes navigation.navigate()

The Navigation APIs is the MUCH improved version of History API. Supported on Chrome/Webview 102 or higher on Android and desktop.

The Shared Element Transitions API is available in Chrome Canary as of version 101 behind a flag at chrome://flags/#document-transition
Yes@system.router
Yesnavigator component
Yesnavigator component
User Interaction Shape detection in Images Accelerated Shape Detection in Images CGR Yes
Yes@system.barcode
YesBarcode
Yesswan.scanCode, swan.ai.faceDetect, swan.ai.advancedGeneralIdentify
User Interaction Shake detection    
No No Shake Detection API but it can easily be implemented using accelerometer and/or gyroscope.
No
Yesmy.watchShake
No
User Interaction Detection of User Screenshots     No
Yes@system.screenshot
Yesmy.onUserCaptureScreen
Yesswan.onUserCaptureScreen
User Interaction Alarms    
Partial getNotifications()
showNotification()
The Notification Triggers API allows you to schedule local notifications that don't require a network connection. It is no longer pursued but the requirements of recurring notification triggers still exist.
Yes@system.alarm
No No
Payment and Services Payment Payment Method: Basic Card WG Note Yes
Yes@service.pay (WeChat + Alipay)
Yesmy.tradePay
Yesswan.requestPolymerPayment
Payment and Services Payment Payment Method Identifiers PR Yes
Yes@service.pay (WeChat + Alipay)
Yesmy.tradePay
Yesswan.requestPolymerPayment
Payment and Services Payment Payment Handler API WD Yes
Yes@service.pay (WeChat + Alipay)
Yesmy.tradePay
Yesswan.requestPolymerPayment
Payment and Services Payment Payment Request API PR Yes
Yes@service.pay (WeChat + Alipay)
Yesmy.tradePay
Yesswan.requestPolymerPayment
Network and Communications Push Messages Push API WD Yes
Yes@service.push
Yesalipay.open.app.mini.templatemessage.send
YesTemplate Message, Customer Service Message
Network and Communications Fetch Fetch Living Standard Yes
Yes@system fetch
Yesmy.request
Yesswan.request
Network and Communications WebSocket Web sockets Living Standard Yes
YesWebSocket (@system.websocketfactory)
Yesmy.connectSocket
YesWebSocket
Network and Communications (BLE) iBeacon Web Bluetooth Scanning DCGR
Partial navigator.bluetooth.requestLEScan()
Partial development on Android and Mac with flag required for Scanning API.
No
YesiBeacon
No
DataStorage Storage Web Storage REC Yes
Yes@system.storage
YesCache
YesCache
DataStorage File API File API WD Yes
Yes@system.file
YesFile API
YesFile API
DataStorage File System Access API File System Access API CGR ?
Yes@system.file, @system.request
YesFile API
YesFile API
DataStorage File Handling File Handling Proposal Yes No No Partial
DataStorage IndexedDB Indexed Database API 3.0 WD Yes No No No
Forms Calendar     No
Yes@system.calendar
Yescalendar element
Yesswan.addEventOnCalendar
Forms Date Picker input date state REC Yes
Yespicker element
Yesmy.datePicker
Yespicker component (mode=date)
Forms City Picker     No No
Yesmy.chooseCity
Yespicker element (mode=region)
Forms Color Picker input color state REC Yes
Yespicker element
No No
Sensors and Local Interactions Ambient Light Sensor Ambient Light Sensor WD Yes
Yessensor.subscribeLight
No No
Sensors and Local Interactions Proximity Sensor Proximity Sensor WD Yes
Yessensor.subscribeProximity
No No
Sensors and Local Interactions Orientation Event DeviceOrientation Event WD Yes
Yessensor.subscribeCompass
Yesmy.onCompassChange, offCompassChange
Yesswan.onCompassChange, swan.startCompass, swan.stopCompass
Sensors and Local Interactions Orientation Sensor Orientation Sensor WD Yes
Yessensor.subscribeCompass
Yesmy.onCompassChange, my.offCompassChange
Yesswan.onCompassChange, swan.startCompass, swan.stopCompass
Sensors and Local Interactions Magnetometer Magnetometer WD Yes
Yessensor.subscribeCompass
Yesmy.onCompassChange, my.offCompassChange
Yesswan.onCompassChange, swan.startCompass, swan.stopCompass
Sensors and Local Interactions Gyroscope Gyroscope CR Yes No
Yesmy.onGyroscopeChange, offGyroscopeChange
No
Sensors and Local Interactions Accelerometer Accelerometer CR Yes
Yessensor.subscribeAccelerometer
Yesmy.onAccelerometerChange, offAccelerometerChange
Yesswan.onAccelerometerChange, swan.offAccelerometerChange
Sensors and Local Interactions Geolocation Geolocation Sensor WD Yes
Yes@system.geolocation
YesLocation
Yesswan.getLocation, swan.chooseLocation, swan.openLocation
Sensors and Local Interactions Generic Sensor Generic Sensor API CR Yes
Yes@system.sensor
Yes
NoNon generic
Sensors and Local Interactions WebHID WebHID API CGR Yes No No No
Sensors and Local Interactions Web Serial Serial API CGR Yes No No No
Sensors and Local Interactions Battery Status Battery Status API WD Yes
Yes@system.battery
Yesmy.getSystemInfo
Yesswan.getBatteryInfo, swan.getBatteryInfoSync
Sensors and Local Interactions NFC Web NFC API CGR Yes
Yes@system.nfc
No No
Sensors and Local Interactions Bluetooth Web Bluetooth CGR Yes
Yes@system.bluetooth
YesBluetooth API
No
Sensors and Local Interactions Device Info     No
Yes@system.device
Yesmy.getSystemInfo
Yesswan.getSystemInfo
Sensors and Local Interactions Network Information Network Information API CGR ?
Yes@system.network
Yesmy.getNetworkType
Yesswan.getNetworkType
Sensors and Local Interactions Screen Brightness Control Screen Wake Lock API WD
No (WIP) The need to control screen brightness is still in progress.
Yes@system.brightness
Yesmy.setScreenBrightness, my.getScreenBrightness
Yesswan.setScreenBrightness, swan.getScreenBrightness
Sensors and Local Interactions System Volume Control     No
Yes@system.volume
No No
Sensors and Local Interactions Third-party App Management     No
Yes@system.package
No(only managed by Alipay)
No(only managed by Baidu App)
Sensors and Local Interactions Contacts Management Contact Picker API Proposal
Yes navigator.contacts
Available on Android (Chrome 80+)
Yes@system.contact (pick and list)
Yesmy.addPhoneContact
Yesswan.addPhoneContact
Sensors and Local Interactions SMS Management     No
Yes@system.sms
No No
Sensors and Local Interactions Wi-Fi Management     No
Yes@system.wifi
YesWi-Fi API
YesWi-Fi API
Sensors and Local Interactions Card     No Yes No No
Sensors and Local Interactions Phone Call Web Telephony API Discontinued No No
Yesmy.makePhoneCall
Yesswan.makePhoneCall
Sensors and Local Interactions Modifying System Settings     No
YesYes (locale and themes)
Partialmy.openSetting
Partialswan.openSetting
Graphics and Layout Animations Web Animations WD Yes
YesCSS-based
Yesmy.createAnimation
Yesswan.createAnimation
Graphics and Layout: Canvas HTML canvas element REC Yes
Yescanvas element
Yescanvas element
Yescanvas element
Graphics and Layout Local Font Access Local Font Access API CGR
Yes queryLocalFonts()
Chrome 103 or higher
No No No
Media Recording MediaStream Recording WD Yes
Yes@system.record
Yesmy.getRecorderManager (partially disabled)
YesRecorderManager
Media Media Capture and Streams Media Capture and Streams REC Yes
Yes@system.media
Yesmy.chooseImage...
Yesswan.chooseImage...
Media Media Capture HTML Media Capture REC Yes
Yes@system.media
Yesmy.chooseImage...
Yesswan.chooseImage...
Media Media Capture Image MediaStream Image Capture WD Yes
Yes@system.media
Yesmy.chooseImage...
Yesswan.chooseImage...
Media Audio HTML audio element REC Yes
Yes@system.audio
Yesmy.createInnerAudioContext
Yesaudio element
Media Video HTML video element REC Yes
Yesvideo element
Yesvideo element
Yesvideo element
Media Image Manipulation     No
Yes@system.image
No No
Media Map     No
Yesmap component
Yesmap component
Yesmap component
Security and Privacy Web Crypto API Web Cryptography API REC Yes
Yes@system.cipher
Yesmy.rsa
No
Security and Privacy Authentication Web Authentication REC Yes
Yes@service.account
Yesmy.getAuthCode
Yesswan.authorize
Security and Privacy Permissions Permissions WD Yes
YesManifest's permissions member
Yesapp.json permission member
Yesapp.json permission member
Security and Privacy One-time Password (OTP) WebOTP DCGR
Yes OTPCredential
Chrome 93 or higher
Yes@system.sms
No No
Security and Privacy Sign up API Sign up with phone number API Proposal ? No No No
Security and Privacy Statistics     No
Yes@service.stats
No
YesProvide statistics plan
Security and Privacy Account Information     No
Yes@service.account
No
Yesswan.getEnvInfoSync
Security and Privacy User Information     No No
Yesmy.getAuthUserInfo
Yesswan.getUserInfo
Security and Privacy Third-party Accounts     No
Yes@service.qqaccount, @service.wxaccount, @service.wbaccount
No No
Security and Privacy Data Analysis     No No
Yesmy.reportAnalytics
Yesswan.reportAnalytics
Security and Privacy Text Risk Identification     No No
Yesmy.textRiskIdentification
Yesswan.ai.textReview
Security and Privacy Image Risk Identification     No No
Yesmy.ap.imgRisk
Yesswan.ai.imageAudit
Security and Privacy Fingerprint Authentication WebAuthn CR
Yes Supported via WebAuthn. Build your first WebAuthn app
No No No
Security and Privacy Face Authentication WebAuthn CR
Yes Supported via WebAuthn
No
YesFace Authentication
Yesswan.ai.faceMatch
Performance Memory Warning     No No
Yesmy.onMemoryWarning
Yesswan.onMemoryWarning