bcvwallet
Version:
JSSDK for bitcvWallet app
98 lines (92 loc) • 2.63 kB
JavaScript
import { env, apiNameMap, configInfo } from './base'
import sdkLog from './sdkLog'
import { setupWebViewJavascriptBridge, checkConfigAndExecute, callCmd, registerCmd } from './utils'
let bwAPI // API object
// API
bwAPI = {
env,
config (parm) {
configInfo.update('config', parm)
sdkLog('币威 JSSDK log 区域: ')
// init bridge and config
setupWebViewJavascriptBridge(function (bridge) {
// init android doc:https://github.com/hjhrq1991/JsBridge
bridge.init && bridge.init(function () {})
callCmd(apiNameMap.config, {
...parm,
success () {
configInfo.update('status', 1)
configInfo._success && configInfo._success()
},
fail (res) {
configInfo.update('status', -1)
configInfo.update('_failRes', res)
configInfo._fail && configInfo._fail(res)
}
})
})
},
ready (readyFunc) {
if (configInfo.status == 1) {
sdkLog('config ready')
readyFunc()
} else {
configInfo.update('_success', readyFunc)
}
},
error (errorFunc) {
if (configInfo.status == -1) {
sdkLog('config error')
errorFunc(configInfo._failRes)
} else {
configInfo.update('_fail', errorFunc)
}
},
// 支付
requestPayment (parm) {
checkConfigAndExecute(apiNameMap.requestPayment, parm, function () {
callCmd(apiNameMap.requestPayment, parm)
})
},
// 分享
shareWechat (parm) {
checkConfigAndExecute(apiNameMap.shareWechat, parm, function () {
callCmd(apiNameMap.shareWechat, parm)
})
},
// 跳转 URL
openUrlScheme (parm) {
checkConfigAndExecute(apiNameMap.openUrlScheme, parm, function () {
callCmd(apiNameMap.openUrlScheme, parm)
})
},
// 下载
download (parm) {
checkConfigAndExecute(apiNameMap.download, parm, function () {
callCmd(apiNameMap.download, parm)
})
},
// 扫一扫
scanQRCode (parm) {
checkConfigAndExecute(apiNameMap.scanQRCode, parm, function () {
callCmd(apiNameMap.scanQRCode, parm)
})
},
// 新版分享
mediaShare (parm) {
checkConfigAndExecute(apiNameMap.mediaShare, parm, function () {
callCmd(apiNameMap.mediaShare, parm)
})
},
// 页面 UI 配置
pageInit (parm) {
checkConfigAndExecute(apiNameMap.pageInit, parm, function () {
// 如果导航栏有按钮,注册导航栏按钮响应回调事件
if (parm.navbarItemType !== 'none') {
registerCmd(apiNameMap.navbarItemCallback, parm.navbarItemCallback)
}
callCmd(apiNameMap.pageInit, parm)
})
}
}
export default bwAPI