Comparison of APIs in MiniApps, W3C specs, and PWAs

Please slide right for more information.

Category Features/Standards W3C Spec Spec Status PWA (PWA.next) QuickApp (Xiaomi, Huawei) Alipay Mini Program (Alipay) Baidu Smart Mini Program
OS Android     Yes Yes Yes Yes
OS iOS     Yes (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 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(rendering)
  + WebView (rendering) + Worker (Data storage and business logic) + V8(use UC
  browsing engine)
rendering:Native+WebView
logic:V8/Javascript Core
File format Page     .html, .js, .css .ux file (template),
  .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 Can be used within Alibaba's Native Apps including Alipay, Taobao, DingDing, Gaode, ELE.me Can be used within Baidu App, and Open Source Union apps, such as IQiyi , Bilibili, Wifi and so on
Modular Customized Component Custom Elements Rec Yes Yes Yes Yes
Add to home
  screen
Add to home screen     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 CGR Yes Share(@system.share +
  @service.share)
onShareAppMessage Yes
Application
  Lifecycle
Splash screen Splash Screen in
  Manifest(WIP)
Proposal Yes (WIP) Yes (private
  implementation)
No and no necessary No and no necessary
Application
  Lifecycle
Service Workers Service Workers Nightly WD Yes No No and no necessary No and no necessary
Application
  Lifecycle
Web App Manifest Web
  App Manifest
WD Yes Yes (private
  implementation)
Yes (private
  implementation)
Yes (private
  implementation)
Application
  Lifecycle
App Info No   No App Info
  (@system.app)
No No
User
  Interaction
Fullscreen Fullscreen API WD Yes manifest.display.fullscreen Yes (private
  implementation)
Yes (private
  implementation)
User
  Interaction
Badging Badging API CGR Yes No Tab Bar (private
  implementation)
Tab Bar (private
  implementation)
User
  Interaction
Prompt No   No Prompt
  (@system.prompt)
Popup component Popup component
User
  Interaction
Vibration Vibration API Rec Yes Vibration
  (@system.vibrator)
my.vibrate* swan.vibrateLong
swan.vibrateShort
User
  Interaction
Notification Notifications API Living
  Standard
Yes Notification
  (@system.notification)
Notice (private
  implementation)
Template Message
Customer Service Message
(private impletmention)
User
  Interaction
Screen Orientation The Screen Orientation API WD Yes orientation in JSON
  (Partial)
No swan.onDeviceMotionChange
User
  Interaction
User Idle Detection User Idle Detection Proposal Yes No No No
User
  Interaction
Wake Lock Wake Lock API CR Yes No only Screen WakeLock
  (my.setKeepScreenOn(OBJECT))
only Screen WakeLock
swan.setKeepScreenOn
User
  Interaction
Clipboard Clipboard API and events WD Yes Clipboard
  (@system.clipboard)
my.getClipboard/my.setClipboard swan.setClipboardData
swan.getClipboardData
User
  Interaction
execCommand execCommand Unofficial
  Draft
Yes Clipboard
  (@system.clipboard)
my.getClipboard/my.setClipboard swan.setClipboardData
swan.getClipboardData
User
  Interaction
History API The History Interface WD Yes Page Router
  (@system.router)
Navigator component Router (private
  implementation)
User
  Interaction
Barcode Accelerated Shape Detection in Images ED Yes Barcode
  (@system.barcode)
Barcode (private
  implementation)
swan.scanCode
swan.ai.faceDetect
swan.ai.advancedGeneralIdentify
User
  Interaction
Shake No   No No my.watchShake(OBJECT) No
User
  Interaction
User Capture Screen
  Event
No   No No my.onUserCaptureScreen(CALLBACK) swan.onUserCaptureScreen
User
  Interaction
Alarms No   No Yes (@system.alarm) No No
Payment and
  Services
Payment Payment Method: Basic Card WD Yes Pay (@service.pay)
  (WeChat + Alipay)
Alipay swan.requestPolymerPayment
Payment and
  Services
Payment Payment Method Identifiers CR Yes Pay (@service.pay)
  (WeChat + Alipay)
Alipay swan.requestPolymerPayment
Payment and
  Services
Payment Payment Handler API WD Yes Pay (@service.pay)
  (WeChat + Alipay)
Alipay swan.requestPolymerPayment
Payment and
  Services
Payment Payment Request API CR Yes Pay (@service.pay)
  (WeChat + Alipay)
Alipay swan.requestPolymerPayment
Network and
  Communications
Push Push
  API
WD Yes Push (@service.push) alipay.open.app.mini.templatemessage.send Template Message
Customer Service Message
(private impletmention)
Network and
  Communications
Fetch Fetch WD Yes Fetch (@system fetch) No (use my.request) swan.request
Network and
  Communications
WebSocket Web sockets CR Yes WebSocket
  (@system.websocketfactory)
my.connectSocket
  (private implementation)
swan WebSocket
Network and
  Communications
iBeacon No   No No iBeacon (private
  implementation)
No
DataStorage
Web Storage Web Storage Rec Yes Storage
  (@system.storage)
Cache (private
  implementation)
Cache (private
  implementation)
DataStorage
File API File API WD Yes File (@system.file)
  and File Upload/Download (@system.request)
File (private
  implementation)
File (private
  implementation)
DataStorage
Native File System
  API
Native File System API ED Yes File (@system.file)
  and File Upload/Download (@system.request)
File (private
  implementation)
File (private
  implementation)
DataStorage
File Handling File Handling (Proposal) Proposal Yes No No Yes (Partial)
DataStorage
IndexedDB Indexed Database API 3.0 ED Yes No No No
Forms
Calendar No   No Calendar
  (@system.calendar)
Calendar (private
  implementation)
No
Forms
Date Picker Date State WD Yes picker (private
  implementation)
my.datePicker(object) picker component (mode = date)
Forms
City Picker No   No No my.chooseCity picker component(mode = region)
Forms
Color Picker Color state WD Yes picker (private
  implementation)
No No
Sensors and
  Local Interactions
Sensor (Ambient
  Light)
Ambient Light Sensor WD Yes     No
Sensors and
  Local Interactions
Sensor (Proximity) Proximity Sensor WD Yes Sensor
  (sensor.subscribeProximity(OBJECT))
No No
Sensors and
  Local Interactions
Sensor (Orientation
  Event)
DeviceOrientation Event WD Yes Sensor
  (sensor.subscribeCompass(OBJECT))
my.onCompassChange/offCompassChange swan.onCompassChange
swan.startCompass
swan.stopCompass
Sensors and
  Local Interactions
Sensor
  (OrientationSensor)
Orientation Sensor WD Yes Sensor
  (sensor.subscribeCompass(OBJECT))
my.onCompassChange/offCompassChange swan.onCompassChange
swan.startCompass
swan.stopCompass
Sensors and
  Local Interactions
Sensor (Magnetometer) Magnetometer WD Yes Sensor
  (sensor.subscribeCompass(OBJECT))
my.onCompassChange/offCompassChange swan.onCompassChange
swan.startCompass
swan.stopCompass
Sensors and
  Local Interactions
Sensor (Gyroscope) Gyroscope WD Yes Sensor
  (sensor.subscribeCompass(OBJECT))
my.onGyroscopeChange/offGyroscopeChange swan.onCompassChange
swan.startCompass
swan.stopCompass
Sensors and
  Local Interactions
Sensor
  (Accelerometer)
Accelerometer WD Yes Sensor
  (sensor.subscribeAccelerometer(OBJECT))
my.onAccelerometerChange/offAccelerometerChange swan.onAccelerometerChange
swan.offAccelerometerChange
Sensors and
  Local Interactions
Sensor(Geolocation) Geolocation Sensor WD Yes Geoloaction
  (@system.geolocation)
Location (private
  implementation)
swan.getLocation
swan.chooseLocation
swan.openLocation
Sensors and
  Local Interactions
Sensor Generic Sensor API WD Yes Sensor
  (@system.sensor)
Yes (private
  implementation)
Not general
Sensors and
  Local Interactions
Geolocation Geolocation API Rec Yes Geoloaction
  (@system.geolocation)
Location (private
  implementation)
swan.getLocation
swan.chooseLocation
swan.openLocation
Sensors and
  Local Interactions
WebHID WebHID API ED Yes No No No
Sensors and
  Local Interactions
Web Serial Serial API CGR Yes No No No
SensorsandLocalInteractions
Battery Status Battery Status API CR Yes Battery
  (@system.battery)
my.getSystemInfo swan.getBatteryInfo
swan.getBatteryInfoSync
SensorsandLocalInteractions
NFC Web NFC
  API
CGR Yes     No
SensorsandLocalInteractions
Bluetooth Web Bluetooth CGR Yes Bluetooth (private
  implementation)
Bluetooth (private
  implementation)
No
SensorsandLocalInteractions
Device Info No   No Device Info
  (@system.device)
my.getSystemInfo swan.getSystemInfo
SensorsandLocalInteractions
Network Information Network
  Information API
CGR Yes Network Info
  (@system.network)
Network Status
  (private implementation)
swan.getNetworkType
SensorsandLocalInteractions
Screen Brightness No   No Screen Brightness
  (@system.brightness)
Screen Brightness
  (private implementation)
swan.setScreenBrightness
swan.getScreenBrightness
SensorsandLocalInteractions
System Volume No   No System Volume
  (@system.volume)
No No
SensorsandLocalInteractions
App Management No   No App Management
  (@system.package)
No and managed by
  Alipay
No and managed by
Baidu App
SensorsandLocalInteractions
Contact No   No Contact
  (@system.contact)
Contact (private
  implementation)
swan.addPhoneContact
SensorsandLocalInteractions
SMS No   No SMS (@system.sms) No No
SensorsandLocalInteractions
Wi-Fi No   No Wi-Fi (@system.wifi) No No
SensorsandLocalInteractions
Card No   No Yes No No
SensorsandLocalInteractions
Phone Call Web Telephony API(No update for 5 years) ED No Yes my.makePhoneCall(OBJECT) swan.makePhoneCall
SensorsandLocalInteractions
Modifying System
  Settings
No   No Yes(Partial) No Yes(Partial)
GraphicsandLayout
Animations Web Animations ED Yes Animation Style
  (private implementation)
my.createAnimation swan.createAnimation
GraphicsandLayout
Canvas The canvas element WD Yes Canvas (private
  implementation)
Canvas (private
  implementation)
Canvas (private
  implementation)
GraphicsandLayout
Local Font Access Local Font Access API
  (Proposal)
Proposal Yes Customized Font
  (private implementation)
No No
Media Recording MediaStream Recording WD Yes Recording
  (@system.record)
No (Disabled by
  Alipay)
Recording (private
  implementation)
Media Media Capture and
  Streams
Media Capture and Streams CR Yes (Partial) Media (@system.media)
  (Take photo/video, pick image/video/file, save to photos album
Only image (take
  photo, pick image)
Media (private
  implementation)
Media Media Capture HTML Media Capture Rec Yes Media (@system.media)
  (Take photo/video, pick image/video/file, save to photos album
Only image (take
  photo, pick image)
Media (private
  implementation)
Media Media Capture Image MediaStream Image Capture WD Yes Media (@system.media)
  (Take photo/video, pick image/video/file, save to photos album
Only image (take
  photo, pick image)
Media (private
  implementation)
Media Audio Audio WD Yes Audio (@system.audio) No Audio (private
  implementation)
Media Video Video WD Yes Yes (private
  implementation)
No Video (private
  implementation)
Media Image Editor No   No Picture Editor
  (@system.image)
No No
Media (TBD) Map No   No Map label Map component Map component
Security and
  Privacy
Web Crypto API Web Cryptography API Rec Yes Cipher
  (@system.cipher)
my.rsa No
Security and
  Privacy
Auth Web
  Authentication
Rec Yes Yes (private
  implementation)
my.getAuthCode swan.authorize
Security and
  Privacy
Permissions Permissions WD Yes manifest.permissions my.showAuthGuide
  (Object)/my.getSetting(OBJECT)
swan.getSetting
Security and
  Privacy
SMS OTP Retriever SMS OTP Retriever(Proposal) Proposal Yes Yes (@system.sms) No No
Security and
  Privacy
Sign up API Sign up with phone number
  API(Proposal)
Proposal Yes No No No
Security and
  Privacy
Statistics No   No Statistics
  (@service.stats)
No provided statistcs plan
Security and
  Privacy
Account No   No Account
  (@service.account)
No swan.getEnvInfoSync
Security and
  Privacy
User Info No   No No my.getAuthUserInfo swan.getUserInfo
Security and
  Privacy
Third-party Account No   No Third-party Account
  (QQ + WeChat + Weibo)
No No
Security and
  Privacy
Data Analysis No   No No my.reportAnalytics swan.reportAnalytics
Security and
  Privacy
Text Risk
  Identification
No   No No my.textRiskIdentification(Object) swan.ai.textReview
Security and
  Privacy
Image Risk
  Identification
No   No No Image Content
  Security (private implementation)
swan.ai.imageAudit
Security and
  Privacy
Fingerprint
  Authertication
No   No No No No
Security and
  Privacy
Face Authentication No   No No Face Authentication
  (private implementation)
swan.ai.faceMatch
Performance
  and Turning
Memory Warning No   No No No swan.onMemoryWarning