Release Note
#
SDK library#
3.9.0 (2022-06-10)#
New Featurefeat: getImageInfo support relative path feat: add wallet-connector plugin feat: redesign timeline feat: startlocationupdate type feat: image-info plugin feat: add plugin user-info & migrate getUserProfile to action get-user-info-profile feat: expose esmoudle of plugin submodule with .mjs
#
Bug Fix- fix: mp canvastouche event payload
- fix: setData in onLoad not working
- fix: timeline check app
- fix: empty subpackages force download action
- fix: mg add devicePixelRatio into getSystemInfo api
#
Misc#
cli- feat(cli): update deprecated input props
- fix(cli): update vendors to support node 16
- feat(cli): support externals lib
- feat(cli): upgrade tarojs to 3.4.4
- fix(cli): fix tarojs version can not found in yarn global action
#
bundler- feat(bundler) : bxml support relative path
- fix(bundler): common.bxss is imported twice & release factory after jsModule is required
- fix(bundler): add globalThis polyfill to page-frame
- feat(bundler): empty app.js for drop compatibility & fix independent subpackage issue
#
Migrating from 3.8.0 to 3.9.0#
Use new features with:- To use the new SDK v3.9.0, please re-upload MiniProgram with new IDE v2.16.0.
- CLI v2.4.0
$ npm install -g @binance/mp-cli
#
3.8.0 (2022-05-20)#
New Feature- feat: framework-storage plugin
- feat: try catch error in App lifecycle
- feat: canIUse plugin
- feat: add Button open-type attribute openSetting
- feat: add wallet-connector plugin
- feat: add API isLoggedIn & add custom plugin ensure-logged-in
#
Bug Fix- fix: remove global wx, fix getOpenDataContext placeholder
- fix: increase gas limit when estimate gas failed
- fix: Web3Provider plugin add Math.ceil when populate gas
- fix: mini game support cocos
- fix: webview not working for the website using node-bridge
- fix: add dataset to MPEventTarget
- fix: sentry + vconsole cause oom
- fix: fix Android need to tap input twice to focus
- fix: fix request cookie setting
- fix: fix reportEvent with keyword to error
#
Misc#
cli- fix(cli): debugReact with react-reconciler not works
- fix(cli): resolve taro presets from installation dir of bmp
- fix(cli): support node 15
- feat(cli): add button open-type getUserProfile & getEmailAddress
#
bundler- feat(bundler): move page logic to page.worker.js
- fix(bundler): adjust the order of loading script in page-frame
- fix(bundler): load base.bxml.js earlier than renderer-service.js
- fix(bundler): load base.bxml.js in head element of page-frame
#
Migrating from 3.7.0 to 3.8.0#
Use new features with:- To use the new SDK v3.8.0, please re-upload MiniProgram with new IDE v2.15.0.
- CLI v2.3.5
$ npm install -g @binance/mp-cli
#
3.7.0 (2022-04-21)#
New Feature- feat: timeLogger-startup add appLoad
- feat: native-rpc-logger support event
- feat: support confirm event for web input
- feat: support tab bar red dot api
- feat: support mode props for Image component
- feat: add direction RTL support for native components include native-input
#
Bug Fix- fix: Image and CoverImage onload & onerror
- fix: plugin create native buffer
- fix: fix deprecated-input onInput not working
- fix: fix View component touchstart twice
- fix: remove the error of webview-sdk Unknown Action $ready
- fix: onAppShow not working
- fix: create a empty webview if src not provided
- fix: remove header field with null value
- fix: fix native input color with autoFocus props
- fix: fix reportEvent with keyword to error
- fix: fix the issue that slider wrap with position: relative container
- fix: DeprecatedInput auto-fill not emit input event
#
Perf- perf(bundler): extract base.bxml to reduce bundle size
#
Misc- feat: add system log label
- feat(cli & bundler): provide source-map in prod mode
- $ bmp build --source-map
- feat(cli): add support autocomplete feature for DeprecatedInput
- fix: add defer for webview context in the node-bridge demo
#
IDE- fix: fix request cookie setting on IDE
- fix: storage plugin api not work on IDE
#
Migrating from 3.6.0 to 3.7.0#
Use new features with:- To use the new SDK v3.7.0, please re-upload MiniProgram with new IDE v2.14.1.
- CLI v2.2.3
$ npm install -g @binance/mp-cli
#
3.6.0(2022-03-31)#
New Feature- feat: rpc-logger add app-rpc logger (#235)
- feat: add built-in-plugin current-ui-event (#229)
- feat: put remote debug runtime into sdk (#218)
- feat: error startup add more info (#208)
- feat: add API wallethub-open-wallet to web3 plugin & fix: cache emitThemeChange payload (#207)
- feat: share-menu,show-dialog plugin (#206)
- feat: buffer-url, background-fetch plugin (#201)
- feat: add mp wallet backup action
- feat: plugin-hide home button api
- feat(component): add back DeprecatedInput component (#180)
#
Bug Fix- fix: remove modal when applyUpdate
- fix: polyfill IntersectionObserver for iOS 12.1 (#234)
- fix: fix websocket, add more test (#226)
- fix: add share-menu, show-dialog to preset (#225)
- fix: move get-selected-text-range to keyboard (#223)
- fix: prevent unpredictable native input focus on Android (#200)
- fix(extraData): JS SDK need to decode extraData then JSON.parse it
#
Misc- refactor: add network plugin (#222)
- chore: update lerna scripts & add new @mp/sdk package (#210)
- chore: update building script with tsc and move runtime-api to runtime-worker-common (#203)
- refactor: add sensor prefix (#202)
#
3.5.0 (2022-03-10)#
New Feature- feat(dwallet): add isUnlocked method
- feat(dwallet): add WalletHub
- feat: webauthn
- feat: getLocation, openLocation, chooseLocation
- feat: show-error-page
- feat: memory-warning
- feat: bn.call
- feat: setData performance monitor
- feat: add bn.canIUseCustom api
#
Bug Fix- fix(update-manager): subscribe the update event earlier
- fix(mp): global env is deprecated, please use bn.env instead.
- fix(mp): error _code is deprecated, please use code instead.
- fix: cls-lcp-fid extr
- fix: fix blank page timer
- fix: request option
- fix: runtimelogger page error
#
Misc- fix: runtimelogger update
- fix: logger error type
- fix: request promise
- fix: add webview-context to preset
- fix request success twice
#
Migrating from 3.3.0 to 3.5.0#
Use new features with:- To use the new feature of SDK v3.5.0, please update IDE to v2.12.0
- CLI v2.1.4
$ npm install -g @binance/mp-cli
- Use new ts types ^2.0.2
$ npm install @binance/mp-service @binance/mp-components --dev
#
3.4.0 (2022-02-17)#
New Featurefeat:
uploadFile
,request
,websocket
,downloadFile
,inner-audio
refactor task-on-demand.feat:
getUserProfile
,selectorQuery
refactor pluginfeat: check deploy script
feat(mini-game): add
bn.setPreferredFramesPerSecond
andbn.getTextLineHeight
apifeat(mini-game): add
load-font
pluginfeat(mp/runtime-sdk): add deviceInfo & scale to SystemService
feat(mp/runtime-sdk): handle theme change
feat(mp/runtime-sdk): support webview ui
feat(mp/runtime-sdk): hooks api
#
Bug Fix- fix:
reportEvent
update - fix:
timelogger
timeline Split is smaller as like 'sdk/app/page' - fix: fix pull down refresh
- fix: progress and file upload of bn network
- fix: show vconsole panel correctly.
#
Misc- MPRunTimeLogger add RuntimeNodeLog
#
3.3.0 (2022-01-20)#
New Feature- feat: remove confirm dialog for createAccount
- feat: add
set-keep-screen-on
plugin - feat: use
prefers-color-scheme
Now you can use css prefers-color-scheme media query in MP.
- feat(mini-game): add
canvas.tempFilePath(sync)
andcanvas.toDataURL
api - feat(mini-game): add
load-font
plugin
#
Bug Fix- fix
native-input
value diff by timestamps - fix
input
issue, delete context value when component unmount - fix
input
autoFocus
Now
<Form>
with<Input>
should work normally
- fix
button
style is not released on Android - fix parameter of
touchcancel
callback oncanvas
- fix key of render slot is missing
- fix prevent load app.js twice
- fix
UpdateManager
could handle the all written callback function - remove duplicated plugin
fileSystemManager
- remove duplicated API requests (related to i18n issue), please re-upload the MP via new IDE
#
Misc- add MPRunTimeLogger, delete RuntimeLogger
- fix Timelogger may lead to burst data stack
#
3.2.4 (2021-12-30)#
New Feature- feat: add support getWeb3Provider docs
- feat: support independent subPackages docs
- feat: Input component now support
alwaysEmbed
andautoFill
props
To use
alwaysEmbed
props, you need to re-upload MiniProgram with IDE^2.9.1
- feat: sharing APIs support of mini-game
- feat: support previewImage & saveImageToPhotosAlbum api docs
#
Bug Fix- fix: download package only if subpackage have been enabled
- fix
disabled
input not working issue - fix: requestAnimationFrame
- fix: make native-input cursor controlled, fix cursor issue on Android
- fix input css selector not working issue by changing bn-input-wrapper to input
#
Misc- feat: add RuntimeLogger
- CLI now support taro-vue
#
Migrating from 3.1.1 to 3.2.4#
Use new features with:- To use the new independent subPackage feature of SDK v3.2.4, please re-upload MiniProgram with new IDE v2.9.1 with
MSV^3.2.0
. - CLI v2.1.3
$ npm install -g @binance/mp-cli
IDE v2.9.1 add
MSV^3.2.0
which support independent subPackages feature.
#
3.1.0 (2021-12-09)#
New Feature- feat: add support subPackages docs
- feat: add support input textAlign style
- feat: add app.json config validator
#
Bug Fix- fix: CLI now support
autoFocus
props for Input component - fix: support rgb fillstyle for Canvas
- fix: createImage api, now support src with local path and
addEventListener
- fix:
getLaunchOptionsSync
andgetEnterOptionsSync
for MiniGame
#
Migrating from 3.0.0 to 3.1.0#
Use new features with:- To use the new subPackage feature of SDK v3.1.0, please re-upload MiniProgram with new IDE v2.8.0 with
MSV^3.1.0
. - CLI v2.0.4
$ npm install -g @binance/mp-cli
- Use new ts types ^2.0.2
$ npm install @binance/mp-service @binance/mp-components --dev
IDE v2.8.0 add
MSV^3.1.0
which support subPackages feature.
#
3.0.0 (2021-11-18)#
New Feature- feat: add support Button component with props
openType='share'
and page lifecyclePage.onShareAppMessage
- feat: add sensor api docs
- feat: add cloud storage & showLeaderboardPanel api docs
- feat: add support
easingFunction
props for Swiper component
#
Bug Fix- fix: convert value of native input to string type
- fix: clamp inner-audio value of
volume
andplaybackRate
- fix:
getEnterOptionsSync
now return correct options
#
Breaking Changes#
Image componentNow default size of Image is width: 320px; height: 240px;
#
Deprecated legacy code removed- Component
DeprecatedInput
removed, please useInput
component instead. - Component
DeprecatedTextarea
removed, please useTextarea
component instead.
- API
bn.getCurrentPages
removed, please use globalgetCurrentPages
function instead. - API
bn.getApp
removed, please use globalgetApp
function instead. - API
bn.getTabBar
removed. - requestPayment:
options.noncestr
removed, please useoptions.nonceStr
instead. - request:
options.body
removed, please useoptions.data
instead. - request:
options.headers
removed, please useoptions.header
instead. - connectSocket:
options.headers
removed, please useoptions.header
instead. - SocketTask: callback payload of
onOpen
changed:
#
Migrating from 2.2.0 to 3.0.0#
Use new features with:- To use the new SDK v3.0.0, please re-upload MiniProgram with new IDE v2.7.0.
- CLI v2.0.2
$ npm install -g @binance/mp-cli
- Use new ts types ^2.0.0
$ npm install @binance/mp-service @binance/mp-components --dev
IDE v2.7.0 drop support for
MSV^2.0.0
, you can only selectMSV^3.0.0
on IDE v2.7.0.
#
2.2.0 (2021-10-28)#
New Feature- feat: add onTabItemTap lifecycle
- feat: add createBufferURL revokeBufferURL api docs
- feat: getFileSystemManager and readFile api
- feat: add new Swiper component
- feat: add createInnerAudioContext api docs
- feat: add new audio global setInnerAudioOption and interruption api docs
- feat: support Image lazyLoad props
#
Migrating from 2.1.2 to 2.2.0#
Use new features with:- IDE v2.6.0.
- CLI v1.2.27
$ npm install -g @binance/mp-cli
- Use new ts types
$ npm install @binance/mp-service @binance/mp-components --dev
#
2.1.2 (2021-10-08)#
New Feature- feat: add support for Form onSubmit onReset event & add onChange event for Switch component
#
Bug Fix- fix: tap trigger twice issue
- fix: theme doesn't change when system theme changed
#
Migrating from 2.1.1 to 2.1.2#
Use new features with:- IDE v2.5.1
- CLI v1.2.23
$ npm install -g @binance/mp-cli
- Use new ts types
$ npm install @binance/mp-service @binance/mp-components --dev
#
2.1.1 (2021-09-30)#
New Feature- add vconsole support
- add template slot support
- add new initialRenderingCache=static page config docs
- add new onReachBottom page lifecycle
- add multiSelector mode for picker component docs
- add new chooseImage api docs
#
Bug Fix- fix: delay ui-performance-log
- fix: timing of page.show
- fix: icon style [default size is 23px now]
- fix: referrerInfo.extraData not work
#
Others- perf: on demand bundle in worker service
#
Migrating from 2.0.0 to 2.1.1#
Use new features with:- IDE v2.5.0.
- CLI v1.2.20
$ npm install -g @binance/mp-cli
- Use new ts types
$ npm install @binance/mp-service @binance/mp-components --dev
#
Add size props to Icon component if needed#
Add bmp alias if neededWith CLI v1.2.20 you will need to add alias, so that the module will be resolved correctly.
#
2.0.0 (2021-09-09)#
New Feature- add mpService.showActionSheet
- add mpService.onUnhandledRejection docs
- add cover-view and cover-image components
- support entryPagePath field
- add mpService.relaunch docs
- add NetworkStatus api docs
- add keyframe animation API
- add mpService.exitMiniProgram docs
- add mpService.downloadFile docs
- add mpService.uploadFile docs
- add pageScrollTo and onPageScroll
#
Bug Fix- fix: getStorageSync api
- fix: request data, requestPayment param
#
Others- fix: types-mp-service
- feat: support rpx unit
#
Migrating from 1.3.0 to 2.0.0- To use the new SDK v2.0.0, please re-upload MiniProgram with new IDE v2.4.0.
- Install latest CLI v1.2.14
$ npm install -g @binance/mp-cli
- Rename the
.babelrc
tobabel.config.json
- Make code of MiniProgram compatible:
mpService.request
#
Parameter:
Response:
Compatible code:
mpService.requestPayment
#
Parameter
Compatible code:
mpService.getStorageSync
#
Behaviors:
Compatible code:
#
SDK 1.3.0Release date: 2021-08-19
Changelogs:
New APIs:
- on/off-show/hide/off-* api
- navigateTo now return EventChannel
- webview postMessage support
- hideHomeButton
- upgrade payment api
New Props:
- ScrollView: add support fastDeceleration and enhanced props (iOS only)
Fixed issues
- fix: placeholder not show when the input is controlled
- fix: margin styling issue for input / textarea component
- fix: tap not trigger when touchmove
Supported DevTools
- IDE: 2.3.0
- CLI: 1.2.2
Supported Binance app versions
- iOS: 2.34.*
- Android: 2.34.*
#
SDK 1.2.0Release date: 2021-07-29
Changelogs:
Synchronous Plugins
Plugins with suffix "Sync" can be called synchronously. Implemented synchronous plugins:
- getStorageSync
- setStorageSync
- cleanStorageSync
- getStorageInfoSync
- removeStorageSync
- getSystemInfoSync
Scene Value
- The scene value is used to describe the user's path to the open the mini program. Now developers can get the scene value from onLaunch or onShow callback.
Fixed issues
- fixed native Input related issues
- ViewPort and SafeArea issue for custom navigation bar and tabbar
- NavigationBar title issue for WebView Component
Supported DevTools
- IDE: 2.2.0
- CLI: 1.2.0
Supported Binance app versions
- iOS: 2.33.*
- Android: 2.33.*
#
Compatibility with Older VersionsNew Mini Program features are constantly being released, but are not supported for older versions of the Binance app. Therefore, the compatibility should be addressed when using these new features.
Developers can use the following methods to ensure compatibility with older versions:
#
1. Version ComparisonVersions of the Binance app and Mini Program base library are expressed in the format of Major.Minor.Patch (major version number.minor version number.patch version number).
In the documentation, the minimum sdk library versions are specified for the features described in component, API, and other pages.
In a Mini Program, developers can call bn.getSystemInfo
or bn.getSystemInfoSync
to get the version of the sdk library run by the Mini Program. The version comparison method is used to run a lower version for compatibility purposes.
Note: Do not compare versions by directly comparing the strings.
See the sample code below:
#
2. bn.canIUseIn addition to a direct judgment by the version number, you can also use bn.canIUse
to determine if a feature can be used directly under the current base library version.