saven
Version:
42 lines (37 loc) • 1.42 kB
JavaScript
import { onAndSyncApis, noPromiseApis, otherApis, initPxTransform } from '@savenjs/saven'
import { createSelectorQuery } from './api/createSelectorQuery'
import request from './api/request'
import * as storage from './api/storage'
import * as interactive from './api/interactive'
import webSocket from './api/webSocket'
import * as tabBar from './api/tabBar'
import * as system from './api/system'
import * as others from './api/others'
function processApis (taro) {
const weApis = Object.assign({ }, onAndSyncApis, noPromiseApis, otherApis)
Object.keys(weApis).forEach(key => {
taro[key] = () => {
console.log(`暂时不支持 ${key}`)
}
})
}
function pxTransform (size) {
const { designWidth } = this.config
return Math.ceil((parseInt(size, 10) / 40 * 640 / designWidth) * 10000) / 10000 + 'rem'
}
function canIUseWebp () {
const canvas = document.createElement('canvas')
return canvas.toDataURL('image/webp').indexOf('data:image/webp') === 0
}
export default function initNativeApi (taro) {
processApis(taro)
taro.request = request
taro.createSelectorQuery = createSelectorQuery
taro.initPxTransform = initPxTransform.bind(taro)
taro.pxTransform = pxTransform.bind(taro)
taro.requirePlugin = function () {
console.error('不支持 API requirePlugin')
}
taro.canIUseWebp = canIUseWebp
Object.assign(taro, storage, interactive, webSocket, tabBar, system, others)
}