Comparison of APIs in MiniApps, W3C specs, and PWAs

Category Features W3C Spec Status PWA.next 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     No Yes
Yes Can be used within Alibaba's Native Apps including Alipay, Taobao, DingDing, 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
Yes`manifest.json`
Yes`app.json`
Yes`app.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 ? No
InternalInternal (in tabs)
InternalInternal (in tabs)
User Interaction Dialogs HTML dialog element Living Standard Yes
Yes`@system.prompt`
Yes`popup` component
Yes`popup` component
User Interaction Vibration Vibration API REC Yes
Yes`@system.vibrator`
Yes`my.vibrate`
Yes`swan.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
Partial`orientation` in Manifest
No
Yes`swan.onDeviceMotionChange
User Interaction User Idle Detection User Idle Detection DCGR ? No No No
User Interaction Wake Lock Wake Lock API WD Yes
Yes`brightness.setKeepScreenOn`
Partialonly screen lock `my.setKeepScreenOn`
Partialonly screen lock `swan.setKeepScreenOn`
User Interaction Clipboard Clipboard API and events WD Yes
Yes`@system.clipboard`
Yes`my.getClipboard`, `my.setClipboard`
Yes`swan.setClipboardData`, `swan.getClipboardData`
User Interaction execCommand() execCommand Discontinued No No No No
User Interaction History API The `History` interface Living Standard Yes
Yes`@system.router`
Yes`navigator` component
Yes`navigator` component
User Interaction Shape detection in Images Accelerated Shape Detection in Images CGR Yes
Yes`@system.barcode`
YesBarcode
Yes`swan.scanCode`, `swan.ai.faceDetect`, `swan.ai.advancedGeneralIdentify`
User Interaction Shake detection     No No
Yes`my.watchShake`
No
User Interaction Detection of User Screenshots     No
Yes`@system.screenshot`
Yes`my.onUserCaptureScreen`
Yes`swan.onUserCaptureScreen`
User Interaction Alarms     No
Yes`@system.alarm`
No No
Payment and Services Payment Payment Method: Basic Card WG Note Yes
Yes`@service.pay` (WeChat + Alipay)
Yes`my.tradePay`
Yes`swan.requestPolymerPayment`
Payment and Services Payment Payment Method Identifiers PR Yes
Yes`@service.pay` (WeChat + Alipay)
Yes`my.tradePay`
Yes`swan.requestPolymerPayment`
Payment and Services Payment Payment Handler API WD Yes
Yes`@service.pay` (WeChat + Alipay)
Yes`my.tradePay`
Yes`swan.requestPolymerPayment`
Payment and Services Payment Payment Request API PR Yes
Yes`@service.pay` (WeChat + Alipay)
Yes`my.tradePay`
Yes`swan.requestPolymerPayment`
Network and Communications Push Messages Push API WD Yes
Yes`@service.push`
Yes`alipay.open.app.mini.templatemessage.send`
YesTemplate Message, Customer Service Message
Network and Communications Fetch Fetch Living Standard Yes
Yes`@system fetch`
Yes`my.request`
Yes`swan.request`
Network and Communications WebSocket Web sockets Living Standard Yes
YesWebSocket (`@system.websocketfactory`)
Yes`my.connectSocket`
Yes`WebSocket`
Network and Communications (BLE) iBeacon     No No
Yes`iBeacon`
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`
Yes`calendar` element
Yes`swan.addEventOnCalendar`
Forms Date Picker `input` date state REC Yes
Yes`picker` element
Yes`my.datePicker`
Yes`picker` component (`mode=date`)
Forms City Picker     No No
Yes`my.chooseCity`
Yes`picker` element (`mode=region`)
Forms Color Picker `input` color state REC Yes
Yes`picker` element
No No
Sensors and Local Interactions Ambient Light Sensor Ambient Light Sensor WD Yes
Yes`sensor.subscribeLight`
No No
Sensors and Local Interactions Proximity Sensor Proximity Sensor WD Yes
Yes`sensor.subscribeProximity`
No No
Sensors and Local Interactions Orientation Event DeviceOrientation Event WD Yes
Yes`sensor.subscribeCompass`
Yes`my.onCompassChange`, `offCompassChange`
Yes`swan.onCompassChange`, `swan.startCompass`, `swan.stopCompass`
Sensors and Local Interactions Orientation Sensor Orientation Sensor WD Yes
Yes`sensor.subscribeCompass`
Yes`my.onCompassChange`, `my.offCompassChange`
Yes`swan.onCompassChange`, `swan.startCompass`, `swan.stopCompass`
Sensors and Local Interactions Magnetometer Magnetometer WD Yes
Yes`sensor.subscribeCompass`
Yes`my.onCompassChange`, `my.offCompassChange`
Yes`swan.onCompassChange`, `swan.startCompass`, `swan.stopCompass`
Sensors and Local Interactions Gyroscope Gyroscope CR Yes No
Yes`my.onGyroscopeChange`, `offGyroscopeChange`
No
Sensors and Local Interactions Accelerometer Accelerometer CR Yes
Yes`sensor.subscribeAccelerometer`
Yes`my.onAccelerometerChange`, `offAccelerometerChange`
Yes`swan.onAccelerometerChange`, `swan.offAccelerometerChange`
Sensors and Local Interactions Geolocation Geolocation Sensor WD Yes
Yes`@system.geolocation`
YesLocation
Yes`swan.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`
Yes`my.getSystemInfo`
Yes`swan.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`
Yes`my.getSystemInfo`
Yes`swan.getSystemInfo`
Sensors and Local Interactions Network Information Network Information API CGR ?
Yes`@system.network`
Yes`my.getNetworkType`
Yes`swan.getNetworkType`
Sensors and Local Interactions Screen Brightness Control     No
Yes`@system.brightness`
Yes`my.setScreenBrightness`, `my.getScreenBrightness`
Yes`swan.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`@system.contact` (pick and list)
Yes`my.addPhoneContact`
Yes`swan.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
Yes`my.makePhoneCall`
Yes`swan.makePhoneCall`
Sensors and Local Interactions Modifying System Settings     No
YesYes (locale and themes)
Partial`my.openSetting`
Partial`swan.openSetting`
Graphics and Layout Animations Web Animations WD Yes
YesCSS-based
Yes`my.createAnimation`
Yes`swan.createAnimation`
Graphics and Layout: Canvas HTML `canvas` element REC Yes
Yes`canvas` element
Yes`canvas` element
Yes`canvas` element
Graphics and Layout Local Font Access Local Font Access API CGR ? No No No
Media Recording MediaStream Recording WD Yes
Yes`@system.record`
Yes`my.getRecorderManager` (partially disabled)
Yes`RecorderManager`
Media Media Capture and Streams Media Capture and Streams REC Yes
Yes`@system.media`
Yes`my.chooseImage`...
Yes`swan.chooseImage`...
Media Media Capture HTML Media Capture REC Yes
Yes`@system.media`
Yes`my.chooseImage`...
Yes`swan.chooseImage`...
Media Media Capture Image MediaStream Image Capture WD Yes
Yes`@system.media`
Yes`my.chooseImage`...
Yes`swan.chooseImage`...
Media Audio HTML `audio` element REC Yes
Yes`@system.audio`
Yes`my.createInnerAudioContext`
Yes`audio` element
Media Video HTML `video` element REC Yes
Yes`video` element
Yes`video` element
Yes`video` element
Media Image Manipulation     No
Yes`@system.image`
No No
Media Map     No
Yes`map` component
Yes`map` component
Yes`map` component
Security and Privacy Web Crypto API Web Cryptography API REC Yes
Yes`@system.cipher`
Yes`my.rsa`
No
Security and Privacy Authentication Web Authentication REC Yes
Yes`@service.account`
Yes`my.getAuthCode`
Yes`swan.authorize`
Security and Privacy Permissions Permissions WD Yes
YesManifest's `permissions` member
Yesapp.json `permission` member
Yesapp.json `permission` member
Security and Privacy SMS OTP Retriever SMS OTP Retriever Proposal ?
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
Yes`swan.getEnvInfoSync`
Security and Privacy User Information     No No
Yes`my.getAuthUserInfo`
Yes`swan.getUserInfo`
Security and Privacy Third-party Accounts     No
Yes`@service.qqaccount`, `@service.wxaccount`, `@service.wbaccount`
No No
Security and Privacy Data Analysis     No No
Yes`my.reportAnalytics`
Yes`swan.reportAnalytics`
Security and Privacy Text Risk Identification     No No
Yes`my.textRiskIdentification`
Yes`swan.ai.textReview`
Security and Privacy Image Risk Identification     No No
Yes`my.ap.imgRisk`
Yes`swan.ai.imageAudit`
Security and Privacy Fingerprint Authentication     No No No No
Security and Privacy Face Authentication     No No
YesFace Authentication
Yes`swan.ai.faceMatch`
Performance Memory Warning     No No
Yes`my.onMemoryWarning`
Yes`swan.onMemoryWarning`