npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

shushangyun-masdk

v1.2.2

Published

数商云MA 小程序端sdk

Readme

shushangyun-masdk

数商云MA 小程序端sdk

  • 触发功能
  • 投放功能

安装

  1. 安装依赖:进到项目根目录运行以下命令
npm install --save shushangyun-masdk
  1. 使用用微信开发者工具点击【工具】菜单中的【构建npm】 相关文档请查看:https://developers.weixin.qq.com/miniprogram/dev/devtools/npm.html

提示:如果提示找不到目录的错误,可以先在项目根目录运行 npm init命令

以上步骤如果正常执行,则可以看到项目会多了一个 miniprogram_npm/shushangyun-masdk的文件夹,结构如下:

|--shushangyun-masdk
|   |--components
|       |--banner.js
|       |--banner.json
|       |--banner.wxml
|       |--banner.wxss
|       |--trigger.js
|       |--trigger.json
|       |--trigger.wxml
|       |--trigger.wxss
|   |--pages
|       |--webview.js
|       |--webview.json
|       |--webview.wxml
|       |--webview.wxss
|   |--inxex.js

sdk包里有两个Comonent: banner和trigger,还有一个Page:webview

index.js是sdk的核心文件

使用

可以查看miniprogram_dev目录里的demo,注意:demo中的app.json文件中的配置与正式使用的目录结构不同,正式使用请参考下面的配置

1.在项目的app.json中引用组件和配置页面

"pages":[ //在pages数组中增加下面一行
    ...
    "miniprogram_npm/shushangyun-masdk/pages/webview"
 ],
"usingComponents": { //在usingCompnents对象中加下以下两行
    ...
     "banner":"miniprogram_npm/shushangyun-masdk/components/banner",
     "trigger":"miniprogram_npm/shushangyun-masdk/components/trigger"
 }

2.初始化sdk, 建议在项目的app.js中引入sdk核心文件并初始化(即一打开小程序就初始化)

//引入sdk文件,并把它加进App对象中。在其他页面中想要引入sdk,可以同样使用以下方式
const masdk = require('shushangyun-masdk');


App({
    data: {},
    onLaunch: function() {

        //初始化sdk,应该在小程序打开的时候就初始化。
        masdk.init({
            appKey:"",//应用key,必填
            appSecret:"",//应用secret,必填
            debug:true,//是否开启debug模式,选填,默认为fasle
            domain:null,//服务器地址,一般不用配置此项,此项只针对私有化部署客户       webviewUrl:null,//用来打开活动的页面,选填,默认值是组件提供的webview页面:miniprogram_npm/shushangyun-masdk/pages/webview,如果有需要,此项指针对需要使用自己定义的页面去打开活动的开发者
        })

        //登录一个测试用户
        //上传用户信息,这个方法应该在用户登录之后调用,此例子直接在onLaunch方法里调用了。正式使用时应该在登录用户(获取到用户信息)时使用
        masdk.infosUser({
          userid: "user12345",
          sex: "男",
          province: "广东省"
        });

      }
})

3.使用触发功能(trigger)和投放功能(banner)

在需要用到触发功能的页面中引入sdk,比如demo页面。

demo.js代码:

const masdk = require('shushangyun-masdk');

Page({

  data: {
    param: {},//触发返回的数据
    debug: [],
    swiperOptoins: { //投放组件轮播图的配置,配置项请参考小程序的swiper组件
      indicatorDots: true,
      displayMultipleItems: 1
    }
  },

  onShow: function () {
  },

  triggerDemo(){

    //调用sdk的trigger方法
    masdk.trigger({
      userid: '1', //触发用户id
      eventKey: 'datu'//事件key
    }).then((res)=> {
      this.setData({
        param: res.data //触发成功后,把返回的数据赋值给param参数(wxml文件引入trigger组件传入此参数)
      })
    })
  }
})

demo.wxml代码

<button size="mini" type="primary" plain="true" bindtap="triggerDemo">触发Demo</button>


<!--banner组件设置的地方就会显示投放的数据-->
<banner position-key="abc" swiper-options="{{swiperOptoins}}" default-image="/public/down.png"/>


<!--引入这个trigger组件显示触发图标-->
<trigger param="{{param}}"/>

触发和投放的高级用法

除上了面的用法之外,某些开发者需要个性化的处理投放和触发结果。这种情况可以直接使用sdk的方法来获取投放和触发的数据,然后自行处理数据。

1.触发接口的调用:

    //和普通用法基本一致。只是不使用sdk提供的trigger组件。
    masdk.trigger({
        userid: '1', //触发用户id
        eventKey: 'datu'//事件key
    }).then((res)=> {
        //在这里拿到res.data后,自行处理
    })

2.投放接口的调用:

    masdk.banner({
        userid: '1', //触发用户id
        positionKey: 'banner'
    }).then((res)=> {
        //在这里拿到res.data后,自行处理
    })

sdk各个方法参数说明: