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

igsdk

v1.1.11

Published

iGlees sdk for CocosCreator.include ads,http request,utils etc.

Readme

iGlees SDK文档

SDK简介

iGlees SDK为Cocos开发者提供了广告、网络请求、加解密、缓存数据等功能,CocosCreator开发者可以使用该SDK提供的功能快速高效的构建游戏。

SDK集成

导入SDK

iGlees SDK的所有功能均放在IG命名空间,然后根据具体的功能模块进行调用。比如IG.IGSdk,IG.HttpWrapper等。使用iGlees SDK前,需要先导入SDK。目前支持两种方式导入,具体如下:

npm方式导入
//在项目根目录使用npm命令安装iGlees SDK(建议使用最新版本)
npm install igsdk@latest --save

//代码中导入SDK使用
import IG from 'igsdk';
手动导入
//1、下载igsdk.js、igsdk.d.ts,将两个文件放入到项目assets目录下的lib目录(具体根据实际情况存放到指定目录),并把igsdk.js设置成插件,并允许web、native、编辑器环境加载

//2、导入SDK,并设置代码提示
import IG from './lib/igsdk.js';
/// <reference path="./lib/igsdk.d.ts" />

初始化SDK

在使用iGlees SDK前,请务必先调用初始化方法完成SDK的初始,具体如下:

/**
* 初始化(注:使用SDK功能前调用,只需要调用一次,建议进入首个场景就调用)
* @param sys 当前系统对象 (CocosCreator<3.0时传cc.sys,CocosCreator>=3.0时传sys)
* @param reflection 反射对象(打包原生平台时需要设置,CocosCreator<=3.5时传jsb.reflection, CocosCreator>=3.6时传native.reflection)
* @param logLevel 日志等级(线上环境设置为LOG_ERROR或OFF)
* @param 是否初始化成功
*/
static init(sys: any, reflection?: any, logLevel?: LOG_LEVEL): boolean;

//初始化SDK
IG.IGSdk.init(sys, sys.isNative ? jsb.reflection : null, IG.LOG_LEVEL.DEBUG);

广告模块

初始化广告SDK

在使用广告模块时,需先初始化广告SDK,具体如下:

/**
* 初始化广告SDK
* @param initOpt 初始化可配置参数
* @param callback 初始化回调
*/
static init(initOpt: ASWInitOpt, callback?: ASWInitCallback): void;
        
//初始化广告SDK
let initOpt = new IG.ASWInitOpt();
initOpt.mediaIdWeb = '11';
initOpt.mediaIdAndroid = '9';
initOpt.mediaIdIOS = '10';
initOpt.mediaId = '11';
initOpt.channel = "";
initOpt.customData = "";
initOpt.showLog = true;
initOpt.test = true;
IG.AdSdkWrapper.init(initOpt, (code, msg) => {
    console.log(`Init sdk : code=${code} , msg=${msg}`);
});

其中,初始化可配参数ASWInitOpt定义如下:

/**
 * 初始化参数
 */
export class ASWInitOpt extends InitOpt {
    //Web端媒体id
    public mediaIdWeb: string;
    //Android端媒体id
    public mediaIdAndroid: string;
    //iOS端媒体id
    public mediaIdIOS: string;
    //鸿蒙端媒体id
    public mediaIdOpenHarmony: string;
}

/**
 * 初始化可配置参数
 */
export class InitOpt {
    //媒体标识(必传)
    public mediaId: string = "";
    //自定义渠道标识。广告数据可以根据自定义渠道进行拆分
    public channel: string = "";
    //自定义数据,最长255字符。激励视频服务端验证时,该数据会回调给服务器
    public customData: string = ""
    // 是否显示日志,默认不显示。线上环境应设置成false
    public showLog: boolean = false;
    //是否打开测试模式。正式上线前请设置为false,否则将不产生收益
    public test: boolean = false;
}
请求广告
/**
* 请求广告
* @param adOpt 请求广告可配置参数
* @param callback 请求广告回调
*/
static requestAd(adOpt: ASWAdOpt, callback?: ASWAdCallback): void;

//请求广告
let adOpt = new IG.ASWAdOpt();
adOpt.adIdWeb = '3';
adOpt.adIdWechatGame = 'adunit-6c232b47c4cc6f9b';
adOpt.adIdAndroid = '37';
adOpt.adType = IG.AD_TYPE.REWARD_VIDEO;
IG.AdSdkWrapper.requestAd(adOpt, {
    onAdReward(adId) {
        console.log(`ad[${adId}] reward.`);
    },
});

其中,请求广告可配置参数ASWAdOpt定义如下:

/**
 * 请求广告参数
 */
export class ASWAdOpt {
    //广告类型(小游戏使用)
    public adType: AD_TYPE;
    //Web端广告位id
    public adIdWeb: string;
    //Android端广告位id
    public adIdAndroid: string;
    //iOS端广告位id
    public adIdIOS: string;
    //鸿蒙端广告位id
    public adIdOpenHarmony: string;
    //微信小游戏端广告位id
    public adIdWechatGame: string;
    //抖音小游戏端广告位id
    public adIdDouYinGame: string;
}

其中,请求广告回调ASWAdCallback定义如下:

/**
 * 请求广告回调接口
 */
export interface ASWAdCallback {
    /**
     * 加载广告成功回调
     * @param adId 广告位id
     */
    onAdLoad?(adId: string): void;

    /**
     * 广告曝光回调
     * @param adId 广告位id
     */
    onAdShow?(adId: string): void;

    /**
     * 广告点击回调(Web平台不一定回调)
     * @param adId 广告位id
     */
    onAdClick?(adId: string): void;

    /**
     * 激励视频可以奖励回调
     * @param adId 广告位id
     */
    onAdReward?(adId: string): void;

    /**
     * 激励视频观看完成回调
     * @param adId 广告位id
     */
    onAdComplete?(adId: string): void;

    /**
     * 广告关闭回调(Web平台不一定回调)
     * @param adId 广告位id
     */
    onAdDismiss?(adId: string): void;

    /**
     * 广告加载失败回调
     * @param adId 广告位id
     * @param code 错误码
     * @param msg 错误消息
     */
    onAdError?(adId: string, code: number, msg: string): void;
}

小游戏模块

小游戏模块所有功能均在MiniGameSdk下,具体功能如下:

授权
/**
* 授权
* @param scope 权限
* @param callback 回调
*/
authorize(scope: string, callback?: MiniGameCallback): void;
登录
/**
* 登录
* @param callback 回调
*/
login(callback?: MiniGameCallback): void;
      
//登录示例:
IG.MiniGameSdk.getInstance()?.login({
    onSuc(res) {
        console.log('login suc.', res);
    },
    onFail(code, msg) {
        console.error('login fail.', code, msg);
    }
});
/**
 * 小游戏回调接口
 */
interface MiniGameCallback {
    /**
     * 成功回调
     * @param res 响应信息
     */
    onSuc(res?: any): void;

    /**
     * 失败回调
     * @param code 错误码
     * @param msg  错误消息
     */
    onFail(code: number, msg: string): void;
}
检查登录态
/**
* 检查登录态 session_key 是否过期
* @param callback 回调
*/
checkSession(callback?: MiniGameCallback): void;
             
//示例:
IG.MiniGameSdk.getInstance()?.checkSession({
    onSuc() {
        console.log('checkSession suc.');
    },
    onFail(code, msg) {
        console.error('checkSession fail.', code, msg);
    }
})            
获取用户信息
/**
* 获取用户信息
* @param nodePosition 节点位置信息
* @param callback 回调
*/
getUserInfo(nodePosition?: MiniGameNodePosition, callback?: MiniGameCallback): void;


//示例:
let interstitialAdNode = find('ButtonLayout/InterstitialAd', this.node);
console.log(interstitialAdNode);
let authUserInfoNodeInfo = this.getNodeInScreenRect(interstitialAdNode);
console.error(authUserInfoNodeInfo);
IG.MiniGameSdk.getInstance()?.getUserInfo(authUserInfoNodeInfo, {
    onSuc(data) {
        console.log('getUserInfo suc.', data);
    },
    onFail(code, msg) {
        console.error('getUserInfo fail.', code, msg);
    },
})
/**
 * 小游戏节点位置信息
 */
export class MiniGameNodePosition {
    //左上角横坐标
    public left: number;
    //左上角纵坐标
    public top: number;
    //宽度
    public width: number;
    //高度
    public height: number;
    //是否调试模式(调试模式会展示获取用户信息按钮)
    public debug: boolean;
}

/**
 * 小游戏用户数据
 */
export class MiniGameUserData {
    //用户昵称
    nick: string;
    //用户头像地址
    avatar: string;
    //包括敏感数据在内的完整用户信息的加密数据
    encryptedData: string;
    //加密算法的初始向量
    iv: string;
}
分享

使用分享时,在iGlees SDK初始化之后,先设置展示分享按钮

//展示分享按钮
IG.MiniGameSdk.getInstance().setShareMenu({
    show: true
});

其中设置分享方法即参数如下:

/**
* 设置分享按钮
* @param shareOpt 分享可配参数
*/
setShareMenu(shareOpt: MiniGameShareOpt): void;
/**
 * 分享可配置参数
 * 参数说明:
 * 图片优先级:imageUrlId+imageUrl > useCanvasImg > 默认
 */
export class MiniGameShareOpt {

    /** 是否展示分享按钮(被动转发分享时设置) */
    public show?: boolean;
    /** 分享标题 */
    public title?: string;
    /** 分享描述(仅抖音小游戏时可用) */
    public desc?: string;
    /** 审核通过的图片ID (抖音小游戏的templateId) */
    public imageUrlId?: string;
    /** 图片地址 */
    public imageUrl?: string;
    /** 是否使用Canvas 内容作为转发图片 (仅微信小游戏时可用) */
    public useCanvasImg?: boolean;
    /** 使用Canvas 内容作为转发图片的可配参数 (仅微信小游戏时可用) */
    public canvasOpt?: MiniGameWxCanvasShareOpt;
    /** 是否使用带 shareTicket 的转发 (仅微信小游戏时可用) */
    public withShareTicket?: false;
    /** 查询字符串,必须是 key1=val1&key2=val2 的格式 */
    public query?: string;
    /** 审核通过的朋友圈预览图图片ID (仅微信小游戏时可用) */
    public imagePreviewUrlId?: string;
    /** 朋友圈预览图链接 (仅微信小游戏时可用) */
    public imagePreviewUrl?: string;
    /** 转发内容类型(仅抖音小游戏时可用) */
    public channel?: string;
}


/**
 * 微信Canvas截图分享可配置参数(仅微信小游戏可用)
 */
export class MiniGameWxCanvasShareOpt {
    /** 截取 canvas 的左上角横坐标 */
    public x?: number;
    /** 截取 canvas 的左上角纵坐标 */
    public y?: number;
    /** 截取 canvas 的宽度 */
    public width?: number;
    /** 截取 canvas 的高度 */
    public height?: number;
    /** 目标文件的宽度,会将截取的部分拉伸或压缩至该数值 */
    public destWidth?: number;
    /** 目标文件的高度,会将截取的部分拉伸或压缩至该数值 */
    public destHeight?: number;
    /** 目标文件的类型:jpg:jpg文件,png:png文件 */
    public fileType?: string;
    /** jpg图片的质量,仅当 fileType 为 jpg 时有效。取值范围为 0.0(最低)- 1.0(最高),不含 0。不在范围内时当作 1.0 */
    public quality?: number;
}

如果需要主动分享,具体调用如下:

/**
* 直接调起分享转发
* @param shareOpt 分享可配参数
*/
shareAppMessage(shareOpt: MiniGameShareOpt): void;


//调用示例:
IG.MiniGameSdk.getInstance().shareAppMessage({
    title: "我就是牌神",
    desc: "十三幺就是爽!",
    imageUrlId: 'testId',
    imageUrl:'testUrl'
});
设置
/**
* 调起客户端小程序设置界面
* @param callback 回调
*/
openSetting(callback: MiniGameCallback): void;

/**
* 获取用户的当前设置
* @param callback 回调
*/
getSetting(callback: MiniGameCallback): void;
游戏圈(微信)
/**
* 创建游戏圈按钮。游戏圈按钮被点击后会跳转到小游戏的游戏圈
* @param clubButtonOpt 游戏圈按钮可配参数
*/
createGameClubButton(clubButtonOpt?: MiniGameClubButtonOpt): any;

                     
/**
 * 戏圈按钮可配参数
 */
export class MiniGameClubButtonOpt extends MiniGameNodePosition {
    //活动页面
    public openlink: string;
    //传递了openlink值时,此字段生效,决定创建的按钮是否需要拥有红点,默认为true
    public hasRedDot?: boolean;
}
客服
/**
* 打开客服
* @param openCustomerServiceOpt 客服可配参数
* @param callback 回调
*/
openCustomerService(openCustomerServiceOpt?: MiniGameOpenCustomerServiceOpt, callback?: MiniGameCallback): void;


/**
 * 打开客服可配参数
 */
export class MiniGameOpenCustomerServiceOpt {
    //抖音客服类型。1:小 6 客服,2:抖音IM 客服(仅支持抖音),3:抖音客服平台(基础库 3.41.0 开始支持)
    public type?: number;
    //微信客服链接
    public url?: string;
    //微信客服企业ID
    public corpId?: string;
}
选择媒体文件
/**
* 选择媒体文件
* @param chooseMediaOpt 选择媒体文件可配参数
* @param callback 回调
*/
chooseMedia(chooseMediaOpt?: MiniGameChooseMediaOpt, callback?: MiniGameCallback): void;


/**
 * 媒体类型
 */
export enum MEDIA_TYPE {
    /** 图片 */
    IMAGE = 'image',
    /** 视频 */
    VIDEO = 'video',
    /** 可同时选择图片和视频 */
    MIX = 'mix'
}

/**
 * 来源类型
 */
export enum SOURCE_TYPE {
    /** 从相册选择 */
    ALBUM = 'album',
    /** 使用相机拍摄 */
    CAMERA = 'camera',
}

/**
 * 相机类型
 */
export enum CAMERA_TYPE {
    /** 使用后置摄像头 */
    BACK = 'back',
    /** 使用前置摄像头 */
    FRONT = 'front',
}

/**
 * 选择媒体文件可配参数
 */
export class MiniGameChooseMediaOpt {
    /** 最多可以选择的数量 */
    public count?: number;
    /** 媒体类型 */
    public mediaType: MEDIA_TYPE;
    /** 来源类型 */
    public sourceType: SOURCE_TYPE;
    /** 拍摄视频最长拍摄时间 */
    public maxDuration?: number;
    /** 仅在 sourceType 为 camera 时生效,使用前置或后置摄像头 */
    public camera?: CAMERA_TYPE;
}

网络请求模块

设置HTTP请求配置
/**
* 设置Http请求配置(请求之前设置)
* @param httpConfig Http请求配置
*/
static setConfig(httpConfig: HttpWrapperConfig): void;

//构建HTTP请求配置
let httpConfig = new IG.HttpWrapperConfig();
httpConfig.baseUrl = 'https://rx.dijikj.com/flkapi/';
httpConfig.version = '1.1.1';
httpConfig.channel = 'officail';
//设置HTTP请求配置
IG.HttpWrapper.setConfig(httpConfig);

其中,HTTP配置HttpWrapperConfig定义如下:

/**
 * Http请求配置
 */
export class HttpWrapperConfig extends HttpConfig {
    //请求基地址
    public baseUrl?: string;
    //客户端版本号
    public version?: string;
    //渠道标识
    public channel?: string;
    //签名前缀
    public signPrefix?: string;
    //AES加密秘钥
    public key?: string;
    //AES加密向量
    public iv?: string;
}

/**
 * Http请求配置
 */
export class HttpConfig {
    //请求超时时间(ms)
    public timeout: number = 5000;
}
发起请求
/**
* GET请求
* @param path 请求路径
* @param callback 请求回调
*/
get<T extends HttpResData>(path: string, callback?: HttpCallbackBean<T>): void;

/**
* POST请求
* @param path 请求路径
* @param params 请求参数
* @param callback 请求回调
*/
post<T extends HttpResData>(path: string, params?: object, callback?: HttpCallbackBean<T>): void;

/**
* 上传文件
* @param path 请求路径
* @param file 文件路径或文件(小程序里面传文件路径)
* @param fileName 上传文件名称
* @param params 请求参数(额外的 form data)
* @param callback 请求回调
*/
uploadFile<T extends HttpResData>(path: string, file: string | Blob, fileName: string, params?: Object, callback?: HttpCallbackBean<T>): void;


//构建回调
let callback = new IG.HttpCallbackBean<LoginResData>();
callback.onFail = (code: number, msg: string) => {
    console.error(`Http request fail: code=${code} , msg=${msg}`);
};
callback.onRes = (data: LoginResData) => {
    //缓存token
    IG.HttpWrapper.setToken(data.data.token);
}
//构建请求参数
let param = new LoginParam();
param.type = 1;
param.mobile = '13617678127';
param.code = '123454321';
//发起请求
new IG.HttpWrapper().post<LoginResData>('user/login', param, callback);

加解密模块

/**
* 加解密工具类
*/
export class CryptoUtil {
    /**
    * 设置配置(未设置时使用默认秘钥、向量)
    * @param key 秘钥
    * @param iv 向量
    */
    static setKey(key: string, iv?: string): void;
    
    /**
    * 获取秘钥
    * @param key 当前设置的秘钥
    * @returns  秘钥
    */
    private static getKey;
    
        
    /**
    * 获取向量
    * @param iv 当前设置的向量
    * @returns 向量
    */
    private static getIv;
    
    /**
    * MD5(32位小写)
    * @param data 需要MD5的数据
    * @returns MD5后的数据
    */
    static md5(data: string): any;
    
    /**
    * AES加密
    * @param data 需要AES加密的数据
    * @param key 秘钥(未设置时,使用默认秘钥)
    * @param iv 向量(未设置时,使用默认向量)
    * @returns AES加密后的数据
    */
    static aesEncrypty(data: string, key?: string, iv?: string): any;
    
    /**
    * AES解密
    * @param data 需要AES解密的数据
    * @param key 秘钥(未设置时,使用默认秘钥)
    * @param iv 向量(未设置时,使用默认向量)
    * @returns AES解密后的数据
    */
    static aesDecrypt(data: string, key?: string, iv?: string): any;
    
    /**
    * Base64加密
    * @param data 需要Base64加密的数据
    * @returns Base64加密后的数据
    */
    static base64Encrpty(data: string): any;
    
    /**
    * BASE64 解密
    * @param data 需要Base64解密的数据
    * @returns Base64解密后的数据
    */
    static base64Decrypt(data: string): any;
    
    /**
    * 生成符合UUID v4标准的唯一标识(优化版)
    */
    static uuid(): string;

}

缓存模块

/**
* 本地存储工具类
*/
export class StorageUtil {
    
    /**
    * 检查是否可以缓存
    * @param key 数据key
    */
    private static checkAvailable;
    
    /**
    * 缓存数据
    * @param key 数据key
    * @param data 数据
    */
    static setData(key: string, data: any): void;
    
    /**
    * 获取缓存数据
    * @param key 数据key
    * @returns 数据
    */
    static getData(key: string): string | null;
    
    /**
    * 安全缓存数据(数据会加密)
    * @param key 数据key
    * @param data 数据
    * @param encryptKey 加密秘钥(未设置时,使用默认秘钥)
    * @param encryptIv 加密向量(未设置时,使用默认向量)
    */
    static setDataSafely(key: string, data: any, encryptKey?: string, encryptIv?: string): void;
    
    /**
    * 获取缓存数据(数据会解密)
    * @param key 数据key
    * @param encryptKey 加密秘钥(未设置时,使用默认秘钥)
    * @param encryptIv 加密向量(未设置时,使用默认向量)
    * @returns 数据
    */
    static getDataSafely(key: string, encryptKey?: string, encryptIv?: string): string | null;

}