codecamp

Weex 辅助工具

为了方便使用,Weex 提供了一系列辅助模块/插件来实现降级功能。

Npm 模块

首先安装 ​@weex-project/downgrade​ 模块,然后在页面代码中引入,调用其中的接口即可触发降级。

import downgrade from '@weex-project/downgrade'

提供的接口如下:

force()

强制降级。调用该接口可以无条件立即降级。

downgrade.force()

check(options)

检查环境信息是否满足 ​options​ 的描述,返回校验结果,并不会触发降级。

options​ 的格式见下文详解,返回值的格式如下:

  • isDowngrade​: 是否应该降级(不满足 ​options​ 中的条件则为 ​true​)。
  • errorType​: 错误类型,语义同上,仅 ​isDowngrade​ 为​ true ​时才包含。
  • code​: 错误代码,语义同上,仅 ​isDowngrade​ 为 ​true​ 时才包含。
const result = downgrade.check({ ios: { osVersion: '<=9.0' } })
if (!result.isDowngrade) {
  // Do something
}

condition(options)

检查环境信息是否满足 ​options​ 的描述,不满足条件则触发降级。 ​options​ 的格式见下文详解,没有返回值。

downgrade.condition({
  android: {
    appVersion: '<=7.8.0',
    weexVersion: '<0.16.0'
  }
})

Webpack 插件

Weex 提供了一个 Webpack 插件 webpack-plugin-downgrade 支持在打包时注入触发降级的代码。

// webpack.config.js
var DowngradePlugin = require('webpack-plugin-downgrade')

module.exports = {
  // other configs ...

  plugins: [
    new DowngradePlugin({ /* downgrade options */ })
  ]
}

插件支持的配置项如下:

  • force​: ​Boolean​ 是否强制降级。
  • conditionObject​ 满足特定条件时才触发降级。具体的配置项见下文详解。
// 强制降级
new DowngradePlugin({ force: true })

// 满足某些条件时降级
new DowngradePlugin({
  condition: {
    ios: {
      deviceModel: ['iPhone5,1']
    },
    android: {
      osVersion: '<=4.4',
      weexVersion: '<0.16.0'
    }
  }
})


Weex 触发降级
Weex 降级配置项
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Weex 调试

Weex 集成Devtool到Android

Weex 集成Devtool到IOS

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }