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     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 browsering 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 File System Access API File System Access 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
Sensors and Local Interactions Battery Status Battery Status API CR Yes Battery (@system.battery) my.getSystemInfo swan.getBatteryInfo
swan.getBatteryInfoSync
Sensors and Local Interactions NFC Web NFC API CGR Yes     No
Sensors and Local Interactions Bluetooth Web Bluetooth CGR Yes Bluetooth (private implementation) Bluetooth (private implementation) No
Sensors and Local Interactions Device Info No   No Device Info (@system.device) my.getSystemInfo swan.getSystemInfo
Sensors and Local Interactions Network Information Network Information API CGR Yes Network Info (@system.network) Network Status (private implementation) swan.getNetworkType
Sensors and Local Interactions Screen Brightness No   No Screen Brightness (@system.brightness) Screen Brightness (private implementation) swan.setScreenBrightness
swan.getScreenBrightness
Sensors and Local Interactions System Volume No   No System Volume (@system.volume) No No
Sensors and Local Interactions App Management No   No App Management (@system.package) No and managed by Alipay No and managed by Baidu App
Sensors and Local Interactions Contact No   No Contact (@system.contact) Contact (private implementation) swan.addPhoneContact
Sensors and Local Interactions SMS No   No SMS (@system.sms) No No
Sensors and Local Interactions Wi-Fi No   No Wi-Fi (@system.wifi) No No
Sensors and Local Interactions Card No   No Yes No No
Sensors and Local Interactions Phone Call Web Telephony API (No update for 5 years) ED No Yes my.makePhoneCall(OBJECT) swan.makePhoneCall
Sensors and Local Interactions Modifying System Settings No   No Yes(Partial) No Yes(Partial)
Graphics and Layout Animations Web Animations ED Yes Animation Style (private implementation) my.createAnimation swan.createAnimation
Graphics and Layout: Canvas The canvas element WD Yes Canvas (private implementation) Canvas (private implementation) Canvas (private implementation)
Graphics and Layout 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