# chanjet-mutants

> mutants框架应用 , 包含环境检测,cordova/微信native状态检测等初始化功能.

Latest version **1.3.8** (published 2019-07-30) · MIT license · 0 weekly downloads

## Install

```sh
npm install chanjet-mutants
pnpm add chanjet-mutants
yarn add chanjet-mutants
bun add chanjet-mutants
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.3.8 |
| Published | 2019-07-30 |
| First published | 2016-09-08 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 19 |
| Unpacked size | 196.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | TonyJiang |
| Maintainers | chanjetsdp |

## Links

- npm: https://www.npmjs.com/package/chanjet-mutants
- npm.io page: https://npm.io/package/chanjet-mutants

## Dependencies (19)

- [eventemitter2](https://npm.io/package/eventemitter2.md) ^2.1.3
- [chanjet-env-check](https://npm.io/package/chanjet-env-check.md) ^1.0.0
- [chanjet-plugin-geo](https://npm.io/package/chanjet-plugin-geo.md) ^1.0.4
- [chanjet-plugin-sms](https://npm.io/package/chanjet-plugin-sms.md) ^1.0.0
- [chanjet-mock-dialog](https://npm.io/package/chanjet-mock-dialog.md) ^0.0.3
- [chanjet-plugin-auth](https://npm.io/package/chanjet-plugin-auth.md) ^1.0.0
- [chanjet-plugin-base](https://npm.io/package/chanjet-plugin-base.md) ^1.0.0
- [chanjet-plugin-alert](https://npm.io/package/chanjet-plugin-alert.md) ^1.0.0
- [chanjet-plugin-share](https://npm.io/package/chanjet-plugin-share.md) ^1.0.0
- [chanjet-plugin-member](https://npm.io/package/chanjet-plugin-member.md) ^0.0.5
- [chanjet-plugin-upload](https://npm.io/package/chanjet-plugin-upload.md) ^1.0.0
- [chanjet-plugin-preview](https://npm.io/package/chanjet-plugin-preview.md) ^1.0.0
- [chanjet-plugin-datepicker](https://npm.io/package/chanjet-plugin-datepicker.md) ^0.2.0
- [chanjet-plugin-navigation](https://npm.io/package/chanjet-plugin-navigation.md) ^1.0.0
- [chanjet-plugin-phone-call](https://npm.io/package/chanjet-plugin-phone-call.md) ^1.0.0
- [chanjet-plugin-take-photo](https://npm.io/package/chanjet-plugin-take-photo.md) ^1.0.0
- [chanjet-plugin-speech-reco](https://npm.io/package/chanjet-plugin-speech-reco.md) ^1.0.11
- [chanjet-plugin-choose-photo](https://npm.io/package/chanjet-plugin-choose-photo.md) ^1.0.0
- [chanjet-plugin-restore-status](https://npm.io/package/chanjet-plugin-restore-status.md) ^1.0.0

## Recent versions

- 1.3.8 (latest) — 2019-07-30
- 1.3.7 — 2019-05-17
- 1.3.4 — 2016-11-07
- 1.3.3 — 2016-10-31
- 1.3.2-alpha.1 — 2016-10-31
- 1.3.2 — 2016-10-31
- 1.3.1 — 2016-10-31
- 1.3.1-alpha.3 — 2016-10-31
- 1.3.1-alpha.2 — 2016-10-31
- 1.3.1-alpha.1 — 2016-10-31
- 1.3.0 — 2016-10-28
- 1.2.1 — 2016-10-26
- 1.2.0-alpha-1 — 2016-10-26
- 1.2.0-alpha — 2016-10-26
- 1.2.0 — 2016-10-26
- … 13 more at https://npm.io/package/chanjet-mutants/versions

## README

# Chanjet-Mutants `v0.0.6`

作为Mutants框架的入口,提供以下功能:

- 不同平台(工作圈 , 微信 , 钉钉等)的统一预处理.
- 环境检测
- native能力



## 加载

目前还是使用 `import` 方式进行进入 , 在适当时候 , 我们会将 `mutants` 更新到cdn服务器 , 使用`script`方式加载 . 目的是为了当工作圈native能力发生更新时 , `mutants` 提供的插件能力也能够同步更新 , 减少npm包管理导致的依赖复杂性.

我们会通过版本号来管理不同版本 , 这样可以兼容不同版本的工作圈.



## 安装

```shell
npm install chanjet-mutants
```



## ready

`mutants.ready` 作为 `mutants` 整个框架的入口 , 会先检测不同平台 native 能力是否准备完成 . 当准备完成后 , 将会执行通过 `ready` 传入的回调函数



```javascript
import mutants from 'chanjet-mutants';

mutants.ready( () => {
  //启动应用
});


```



## 环境检测

在 `mutants` 提供环境检测之前 , 环境检测是有 `chanjet-env-check` 这个包来完成的. 现在 `mutants` 中已经整合了环境检测 , 也是使用 `chanjet-env-check` , 挂载在 `mutants.env` 对象上.

```javascript
import mutants from 'chanjet-mutants'

/*
mutants封装了chanjet-env-check对象,可以快速获取当前环境,无需在引入chanjet-env-check包,详见接口文档
*/

//当前平台
console.log(mutants.env.platform);
//当前系统或设备
console.log(mutants.env.os);
//当前浏览器
console.log(mutants.env.browser);

//可以通过constant来判断

//判断是否是chanjet平台
mutants.env.platform == mutants.constant.platform.chanjet
//判断是否是ios操作系统
mutants.env.os == mutants.constant.os.ios
//判断是否是chrome浏览器
mutants.env.browser == mutants.constant.browser.chrome
```



## Native能力

目前提供的Native能力 , 都可以在 `mutants.plugin` 对象上找到.

具体能力见下表:

| API                              | Native能力               | 文档                                    |
| -------------------------------- | ---------------------- | ------------------------------------- |
| mutants.plugin.**auth**          | 企业信息及权限相关              | [去看看](chanjet-plugin-auth.md)         |
| mutants.plugin.**choosePhoto**   | 读取相册选照片                | [去看看](chanjet-plugin-choose-photo.md) |
| mutants.plugin.**takePhoto**     | 拍照                     | [去看看](chanjet-plugin-take-photo.md)   |
| mutants.plugin.**preview**       | 预览                     | [去看看](chanjet-plugin-preview.md)      |
| mutants.plugin.**upload**        | 上传                     | [去看看](chanjet-plugin-upload.md)       |
| mutants.plugin.**geo**           | 定位                     | [去看看](chanjet-plugin-geo.md)          |
| mutants.plugin.**phone**         | 电话                     | [去看看](chanjet-plugin-phone-call.md)   |
| mutants.plugin.**sms**           | 短信                     | [去看看](chanjet-plugin-sms.md)          |
| mutants.plugin.**share**         | 分享                     | [去看看](chanjet-plugin-share.md)        |
| mutants.plugin.**speechReco**    | 语音识别                   | [去看看](chanjet-plugin-speech-reco.md)  |
| mutants.plugin.**restoreStatus** | 安卓restore状态查询(Private) |                                       |



**所有插件的方法, 都可以在对应的 `mutants.plugin[pluginName]` 上直接使用.**

为了兼容好会计之前的调用方式, 每一个插件的包依旧支持独立使用 , 等好会计调整过后. 将不再提供.



## Mock

在开发过程中, 可以在浏览器环境中 , 使用 `mock` 数据来模拟Native能力的调用返回. 上表中 , 详细文档中会有每个插件的 `mock` 数据格式 .

通过 `mutants.plugin.setMockData` 可以进行 `mock` 数据的绑定.

以 `choosePhoto` 为例:

```javascript
import mutants from 'chanjet-mutants'

const mockData = {
  //读取相册成功
  ChoosePhotoPlugin: {
    status: 'success',
    //替换成自己想显示的图片
    data: ['http://www.example.com/example.png']
  },
};

//设置mock数据
mutants.plugin.setMockData(mockData);


//详细文档参见ChoosePhotoPlugin文档
const choosePhotoOptions = {
  maxCount : 2,
  quality : 0
};
mutants.plugin.choosePhoto.choosePhoto(choosePhotoOpitons , (rs) => {
  //rs.body.data 中得数据 应该是mockData中所设置的
  console.log(rs);
});

```

---
_Source: https://npm.io/package/chanjet-mutants · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
