Release Note
SDK library
3.9.0 (2022-06-10)
New Feature
feat: 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 Feature
-
feat:
uploadFile
,request
,websocket
,downloadFile
,inner-audio
refactor task-on-demand. -
feat:
getUserProfile
,selectorQuery
refactor plugin -
feat: check deploy script
-
feat(mini-game): add
bn.setPreferredFramesPerSecond
andbn.getTextLineHeight
api -
feat(mini-game): add
load-font
plugin -
feat(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
- Before: css selector with "input" keyword not working. ex: .class input { color: red }
- After: Now it should work.
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 component
Now default size of Image is width: 320px; height: 240px;
// Image Component size
+ width: 320px;
+ height: 240px;
Deprecated legacy code removed
- Component
DeprecatedInput
removed, please useInput
component instead. - Component
DeprecatedTextarea
removed, please useTextarea
component instead.
import {
- DeprecatedInput,
- DeprecatedTextarea,
Input,
Textarea,
} from '@binance/mp-components'
- 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:
socketTask.onOpen({
- headers,
+ header
} => {})
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
import { Icon } from '@binance/mp-components'
<Icon
+ size="1em" // default size is 23px now
>
Add bmp alias if needed
With CLI v1.2.20 you will need to add alias, so that the module will be resolved correctly.
// bmp.config/index.js
const path = require('path')
module.exports = {
alias: {
'i18next-browser-languagedetector': path.resolve('./path/to/adapter/index.js'),
},
}
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:
{
url,
body,
headers,
timeout,
method,
// added in SDK 2.0.0
// data: equals to body functionally
data,
// header: equals to headers functionally
header,
// dataType?: ‘json’ | ‘other’ , should parse response data to json
dataType
}
Response:
// SDK 1.3.0
{
ok,
json,
text,
status,
headers,
statusText,
url,
data,
}
// SDK 2.0.0
{
data,
statusCode,
header,
}
Compatible code:
const response = await mpService.request({ url, data, header, headers, timeout, method, dataType })
if (response.json) {
const json = await response.json()
const text = await response.text()
const ok = response.ok
const status = response.status
const headers = response.headers
const statusText = response.statusText
} else {
// if parameter dataType is ‘json’ data is in json format, or data is text.
const data = response.data
const ok = statusCode === 200
const headers = response.header
const status = response.statusCode
const statusText = response.statusCode.toString()
}
mpService.requestPayment
Parameter
{
prepayId, // deprecated in SDK 2.0.0
// added in SDK 2.0.0
certSn,
nonceStr,
package: "prepay_id=....",
merchantId,
paySign, // compute rule
timeStamp
}
Compatible code:
const result = await mpService.requestPayment({
prepayId,
certSn,
nonceStr,
package: `prepay_id=${prepayId}`,
merchantId,
paySign,
timeStamp,
})