提交 8b362370 编写于 作者: X xiaoyucoding

perf: 优化 API 兼容性的处理

上级 8c2cdc58
...@@ -18,7 +18,18 @@ import * as extraApi from './extra' ...@@ -18,7 +18,18 @@ import * as extraApi from './extra'
import * as api from 'uni-platform/service/api/index.js' import * as api from 'uni-platform/service/api/index.js'
import protocols from 'uni-platform/service/api/protocols' import { protocols, todos, canIUses } from 'uni-platform/service/api/protocols'
todos.forEach(todoApi => {
protocols[todoApi] = false
})
canIUses.forEach(canIUseApi => {
const apiName = protocols[canIUseApi] && protocols[canIUseApi].name ? protocols[canIUseApi].name : canIUseApi
if (!__GLOBAL__.canIUse(apiName)) {
protocols[canIUseApi] = false
}
})
let uni = {} let uni = {}
......
...@@ -10,7 +10,7 @@ import { ...@@ -10,7 +10,7 @@ import {
isContextApi isContextApi
} from '../helpers/promise' } from '../helpers/promise'
import protocols from 'uni-platform/service/api/protocols' import { protocols } from 'uni-platform/service/api/protocols'
const CALLBACKS = ['success', 'fail', 'cancel', 'complete'] const CALLBACKS = ['success', 'fail', 'cancel', 'complete']
......
export default {} export const protocols = {}
export const todos = []
export const canIUses = []
// 不支持的 API 列表 // 不支持的 API 列表
const TODOS = [ const todos = [
'saveImageToPhotosAlbum', 'saveImageToPhotosAlbum',
'getRecorderManager', 'getRecorderManager',
'getBackgroundAudioManager', 'getBackgroundAudioManager',
...@@ -24,7 +24,6 @@ const TODOS = [ ...@@ -24,7 +24,6 @@ const TODOS = [
'hideTabBarRedDot', 'hideTabBarRedDot',
'setBackgroundColor', 'setBackgroundColor',
'setBackgroundTextStyle', 'setBackgroundTextStyle',
'startPullDownRefresh',
'createIntersectionObserver', 'createIntersectionObserver',
'authorize', 'authorize',
'openSetting', 'openSetting',
...@@ -45,6 +44,11 @@ const TODOS = [ ...@@ -45,6 +44,11 @@ const TODOS = [
'offWindowResize' 'offWindowResize'
] ]
// 存在兼容性的 API 列表
const canIUses = [
'startPullDownRefresh'
]
function _handleNetworkInfo (result) { function _handleNetworkInfo (result) {
switch (result.networkType) { switch (result.networkType) {
case 'NOTREACHABLE': case 'NOTREACHABLE':
...@@ -359,8 +363,8 @@ const protocols = { // 需要做转换的 API 列表 ...@@ -359,8 +363,8 @@ const protocols = { // 需要做转换的 API 列表
} }
} }
TODOS.forEach(todoApi => { export {
protocols[todoApi] = false protocols,
}) todos,
canIUses
export default protocols }
// 不支持的 API 列表 // 不支持的 API 列表
const TODOS = [ const todos = [
'hideKeyboard', 'hideKeyboard',
'onGyroscopeChange', 'onGyroscopeChange',
'startGyroscope', 'startGyroscope',
...@@ -32,6 +32,9 @@ const TODOS = [ ...@@ -32,6 +32,9 @@ const TODOS = [
'offWindowResize' 'offWindowResize'
] ]
// 存在兼容性的 API 列表
const canIUses = []
function createTodoMethod (contextName, methodName) { function createTodoMethod (contextName, methodName) {
return function unsupported () { return function unsupported () {
console.error(`__PLATFORM_TITLE__ ${contextName}暂不支持${methodName}`) console.error(`__PLATFORM_TITLE__ ${contextName}暂不支持${methodName}`)
...@@ -93,8 +96,8 @@ const protocols = { ...@@ -93,8 +96,8 @@ const protocols = {
} }
} }
TODOS.forEach(todoApi => { export {
protocols[todoApi] = false protocols,
}) todos,
canIUses
export default protocols }
// 不支持的 API 列表 // 不支持的 API 列表
const TODOS = [ const todos = [
'hideKeyboard', 'hideKeyboard',
'onSocketOpen', 'onSocketOpen',
'onSocketError', 'onSocketError',
...@@ -81,6 +81,9 @@ const TODOS = [ ...@@ -81,6 +81,9 @@ const TODOS = [
'offWindowResize' 'offWindowResize'
] ]
// 存在兼容性的 API 列表
const canIUses = []
// 需要做转换的 API 列表 // 需要做转换的 API 列表
const protocols = { const protocols = {
chooseImage: { chooseImage: {
...@@ -154,8 +157,8 @@ const protocols = { ...@@ -154,8 +157,8 @@ const protocols = {
} }
} }
TODOS.forEach(todoApi => { export {
protocols[todoApi] = false protocols,
}) todos,
canIUses
export default protocols }
export default {} export const protocols = {}
export const todos = []
export const canIUses = []
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册