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 |