# nw-mission

> lofter activity mission sdk

Latest version **1.34.1** (published 2026-06-08) · ISC license · 0 weekly downloads

## Install

```sh
npm install nw-mission
pnpm add nw-mission
yarn add nw-mission
bun add nw-mission
```

## Health

**Score 55/100 (C)** — status: active.

Positive: has types; esm support; no vulnerabilities.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 1.34.1 |
| Published | 2026-06-08 |
| First published | 2021-11-23 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 7 |
| Unpacked size | 96 KB |
| Known vulnerabilities | 0 (+25 in 1 direct dependencies) |
| Install scripts | no |
| Author | hzliushicuan@corp.netease.com |
| Maintainers | guoyeeg, azgaga, liushichuan, yaochen, shenyuan, aflyermin, ignous, jeekdong, yousy, luofeiyue, whiskeyi, fechen |
| Keywords | lofter |

## Links

- npm: https://www.npmjs.com/package/nw-mission
- npm.io page: https://npm.io/package/nw-mission

## Dependencies (7)

- [qs](https://npm.io/package/qs.md) ^6.10.1
- [axios](https://npm.io/package/axios.md) 0.20.0
- [nw-share](https://npm.io/package/nw-share.md) ^2.20.2
- [nw-detect](https://npm.io/package/nw-detect.md) ^2.31.1
- [nejsbridge](https://npm.io/package/nejsbridge.md) ^1.7.14
- [@babel/runtime](https://npm.io/package/@babel/runtime.md) ^7.11.2
- [query-string-for-all](https://npm.io/package/query-string-for-all.md) ^7.1.1

## Recent versions

- 1.34.1 (latest) — 2026-06-08
- 1.34.0 — 2025-08-18
- 1.33.3 — 2025-06-23
- 1.33.2 — 2025-06-22
- 1.33.1 — 2025-06-22
- 1.33.0 — 2025-05-22
- 1.32.0 — 2025-05-21
- 1.31.15 — 2025-04-17
- 1.31.14 — 2025-04-17
- 1.31.13 — 2025-04-10
- 1.31.12 — 2025-04-09
- 1.31.11 — 2025-04-08
- 1.31.10 — 2025-01-17
- 1.31.9 — 2025-01-17
- 1.31.8 — 2025-01-17
- … 90 more at https://npm.io/package/nw-mission/versions

## README

# nw-mission

> LOFTER活动任务SDK

<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->

- [任务处理模块使用方法](#%E4%BB%BB%E5%8A%A1%E5%A4%84%E7%90%86%E6%A8%A1%E5%9D%97%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95)
  - [安装](#%E5%AE%89%E8%A3%85)
  - [使用](#%E4%BD%BF%E7%94%A8)
    - [执行任务](#%E6%89%A7%E8%A1%8C%E4%BB%BB%E5%8A%A1)
    - [手动完成分享任务](#%E6%89%8B%E5%8A%A8%E5%AE%8C%E6%88%90%E5%88%86%E4%BA%AB%E4%BB%BB%E5%8A%A1)
    - [完成卡牌分享任务](#%E5%AE%8C%E6%88%90%E5%8D%A1%E7%89%8C%E5%88%86%E4%BA%AB%E4%BB%BB%E5%8A%A1)
    - [完成邀请助力](#%E5%AE%8C%E6%88%90%E9%82%80%E8%AF%B7%E5%8A%A9%E5%8A%9B)
- [浏览任务自动完成模块使用方法](#%E6%B5%8F%E8%A7%88%E4%BB%BB%E5%8A%A1%E8%87%AA%E5%8A%A8%E5%AE%8C%E6%88%90%E6%A8%A1%E5%9D%97%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95)
  - [使用](#%E4%BD%BF%E7%94%A8-1)
- [发布需知](#%E5%8F%91%E5%B8%83%E9%9C%80%E7%9F%A5)

<!-- END doctoc generated TOC please keep comment here to allow auto update -->


## 任务处理模块使用方法
### 安装
```
npm i nw-mission --save
```
### 使用
#### 执行任务
```javascript
import { complete } from 'nw-mission';

const activityCode = 'harry-potter';
const shareData = {
  title: '1',
  description: '2',
  activityId: '3',
  picurl: '4',
}
const missionInfoList = await getMissionInfo();
const missionInfo = missionInfoList[0];
// 浏览任务
complete({
  missionInfo,
  activityCode,
})
// 分享任务
complete({
  missionInfo,
  activityCode,
  shareData,
})

```


#### 手动完成分享任务
针对活动通用化场景下，分享任务的完成流程与CMS页面不在一起，需要自行在活动页触发分享并判断分享完成情况。

在前端收到约定分享任务的JSBridge完成回调后，手动调用此方法完成任务以领取任务奖励。
```javascript
import { shareComplete } from 'nw-mission'

shareComplete({
  activityCode: 'harry-potter',
  successCallback: () => {
    console.log('分享任务完成并上报成功');
  }
})
```

#### 完成卡牌分享任务
针对主街区需要跳转到抽卡首页等页面完成晒卡后才算任务完成，所以在调用此类任务的`complete`方法后，会自动把信息写入cookie再跳转到晒卡对应页面
- `manual`  manual不传默认为false，代表自动监听页面分享完成，如果为true，本SDK将不会监听分享完成的JSBridge回调，需自行处理
```javascript
import { shareCardEffect } from 'nw-mission'
// 自动执行卡牌分享任务
shareCardEffect({
  manual: false, // manual不传默认为false，代表自动监听页面分享完成
  activityCode: 'harry-potter',
  successCallback: () => {
    console.log('卡牌分享任务完成并上报成功');
  }
})
```

#### 完成邀请助力
```javascript
import { inviteEffect } from 'nw-mission'
inviteEffect({
  successCallback: () => {
    console.log('助力成功');
  },
  errorCallback: (msg: string) => {
    console.log(msg);
  }
})
```

## 浏览任务自动完成模块使用方法
> 目前只有浏览任务的自动完成功能
> 本脚本会自动在符合URL格式的页面读取任务信息，完成任务并自动上报

### 使用
在HTML中引入以下脚本：
```html
<script src="https://lofter.lf127.net/nw-mission/effect-8b458c01.js"></script>
```

## 发布需知
1. `npm run build`使用**Rollup**进行打包，打包出两份产物。
   1. 其中`dist/index.js`是`esModule`形式，保留了`import`语法，便于依赖分析，减少应用打包体积。
   2. 另外`dist/effect.js`是用于任务目标页引入，用于识别url中的任务信息，自动完成任务并且上报。
2. `npm run build`会自动调用`npm run doc`，该命令会将最新版本的`dist/effect.js `内容上传并且写入`readme.md`中。
3. 如果要更新组件文档，需要更新`readme.template.md`，该文件是`readme.md`的模板，会被`npm run doc`命令刷新。
4. `npm run doc`命令依赖`upload.config.js`文件中的NOS上传配置，需自行创建、配置并导出名为`nosUpload`的配置
   ```javascript
   const nosUpload = {
     accessId: '',
     secretKey: '',
     endPoint: '',
     port: 80,
     domain: '',
     bucket: ''
   }
   module.exports = {
     nosUpload,
   }
   ```
5. `npm run doc`命令支持单独调用，如果确认代码没有改动，只需要更新文档，可以只执行本命令。

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