# 初始化

# 接口说明

使用 new DHMiniSDK(options) 进行SDK初始化,初始化完成后将返回一个实例对象,可通过该实例对象访问相关属性,或调用相关服务API,如系统信息、用户信息、执行登录、发起支付等。

new DHMiniSDK(options);

注意事项

请游戏客户端务必在游戏入口文件 game.js 中(game.js 一般位于微信小游戏项目工程的根目录下),于微信官方适配文件 weapp-adapte.js 引入之后,其它初始化或资源加载环节之前优先导入并执行SDK初始化!该注意事项为运营需求,并非SDK自身限制,尽早完成SDK初始化,方可使用SDK的数据统计接口,在游戏的初始化或资源加载环节完成部分日志上报,以便更加细粒度的分析用户的转化行为和流失情况。

# 参数说明

参数说明如下表所示:

选项 类型 必填 默认值 说明
requests object -- 服务接口地址
    requests.login string -- 登录服务接口地址,请参考上文《添加安全域名》栏目中填写
    requests.order string -- 支付下单服务接口地址,请参考上文《添加安全域名》栏目中填写
    requests.pay string -- 支付服务接口地址(H5支付),请参考上文《添加安全域名》栏目中填写
    requests.midas string -- 支付服务接口地址(米大师支付),请参考上文《添加安全域名》栏目中填写
    requests.survey string -- 问卷调查服务接口地址,请参考上文《添加安全域名》栏目中填写
    requests.customerService string -- H5客服服务接口地址,请参考上文《添加安全域名》栏目中填写
    requests.gameClub string -- 游戏圈服务接口地址,请参考上文《添加安全域名》栏目中填写
    requests.log string -- 数据上报服务接口地址,请参考上文《添加安全域名》栏目中填写
    requests.errorLog string -- 日志上报服务接口地址,请参考上文《添加安全域名》栏目中填写
    requests.dyb string -- 冰柠乐渠道服务接口地址,仅在上架至冰柠乐渠道时必填,请参考上文《添加安全域名》栏目中填写
gameAppId string -- 游戏在微信侧的 AppID;可登录《微信公众平台》后台,进入“设置 > 基本设置 > 帐号信息”栏目中查看
appId string -- 游戏在SDK开放平台侧的 AppID
appVersion string -- 游戏的版本号,如 2.0.4.10
packageName string -- 游戏的应用包名,如 com.example.abc
channel number -- 游戏渠道包ID,如 1398
mainChannel number -- 推广主渠道ID,如 100708(注意,若小游戏启动参数中包含 mainChannel 字段,则该字段值将覆盖此处设置的参数值)
secondChannel number -- 推广次渠道ID,如 100709(注意,若小游戏启动参数中包含 secondChannel 字段,则该字段值将覆盖此处设置的参数值)
heartbeatEnable boolean true 是否开启心跳数据上报,若开启,则SDK将每隔一分钟向服务器发送一条心跳数据
reyunAppKey string -- 游戏的热云 AppKey(于热云广告监测平台创建产品时生成的AppKey,可联系相关运营或UA投放人员咨询)(注意,若填写此项则表示启用SDK内部集成的热云数据上报服务;启用热云数据上报需要将 https://log.reyun.comhttps://openid.reyun.com 添加为 request 合法域名)
gravityEngineAccessToken string -- 游戏的引力引擎 Access Token(于引力引擎控制台创建产品时生成的Access Token,在引力控制台“设置 > 应用列表”中找到Access Token列进行复制,首次使用需要先创建应用)(注意,若填写此项则表示启用SDK内部集成的引力引擎数据上报服务;启用引力引擎数据上报需要将 https://backend.gravity-engine.com 添加为 request 合法域名)
gravityEngineDebug boolean -- 显式开启或关闭引力引擎数据上报的调试模式,默认根据游戏当前的体验环境自动设置,正式版下为 false,开发版或体验版下为 true;开启调试模式后,可以在引力控制台“设置 > 元数据 > 事件流”中查看实时数据上报结果
gravityEnginePayEventEnable boolean true 引力引擎付费事件是否采用客户端上报,默认采用(注意,若引力引擎付费事件上报采用服务端上报,请务必将此参数设为 false,并于SDK中台系统配置服务端上报相关参数,否则可能导致双端付费事件上报丢失或重复!!!)
tencentUserActionId number -- 腾讯广告平台相关联的 数据源ID,如 100001,于《腾讯广告平台》 后台“数据源接入 > 新建数据源 > 查看密钥”处获取(注意:若填写此项则表示启用SDK内部集成的腾讯广告数据上报服务;启用腾讯广告数据上报需要将 https://api.datanexus.qq.com 添加为 request 合法域名)
tencentSecretKey string -- 腾讯广告平台相关联的 加密密钥secret_key,于《腾讯广告平台》 后台“数据源接入 > 新建数据源> 查看密钥”处获取(注意:若填写此项则表示启用SDK内部集成的腾讯广告数据上报服务;启用腾讯广告数据上报需要将 https://api.datanexus.qq.com 添加为 request 合法域名)
tencentDebug boolean -- 显式开启或关闭腾讯广告平台数据上报的调试模式,默认根据游戏当前的体验环境自动设置,正式版下为 false,开发版或体验版下为 true

# 示例代码

注:示例代码中的参数或选项均为演示数据,仅供参考,谢谢!

// 请务必确保SDK导入、SDK初始化,以及所有游戏逻辑代码等,均在 weapp-adapter.js 适配文件导入后再执行
// 有关 weapp-adapter.js 的详细说明,可阅读:https://developers.weixin.qq.com/minigame/dev/guide/runtime/adapter.html

// 导入冰柠乐渠道SDK文件(注意,仅在上架至冰柠乐渠道时需导入该SDK文件)
// 冰柠乐渠道SDK文件还依赖其配置文件 dyb.mg.wx.config.js,请根据渠道提供的信息手动配置相关参数,并保证 dyb.mg.wx.config.js 和 dyb.mg.wx.min.js 两者目录相同
import "./dyb.mg.wx.min";
// 导入微信小游戏SDK核心文件
import DHMiniSDK from "./dh-mini-sdk-for-wx-x.x.x";

// 双引号内的内容为SDK文件相对于项目工程根目录的路径,请根据实际情况自行修改,该示例假设已将SDK文件下载到根目录下
// 若使用 import 语句导入SDK文件时,微信开发者工具控制台输出报错:SyntaxError: Cannot use import statement outside a module
// 那么请开启微信开发者工具的“将 JS 编译成 ES5”功能,设置路径:微信开发者工具 > 右上角“详情” > 本地设置 > 勾选“将 JS 编译成 ES5”
// 或使用 require 语句导入SDK文件:const DHMiniSDK = require("./dh-mini-sdk-for-wx-x.x.x");

// 请于其它初始化或资源加载(如游戏引擎导入、游戏资源加载等)环节之前优先导入并执行SDK初始化
// 相关参数表请咨询运营人员提供
const sdkInstance = new DHMiniSDK({
  requests: {
    login: "xxxxxxxxxxxxxxxxxxxx", // 登录服务接口地址
    order: "xxxxxxxxxxxxxxxxxxxx", // 支付下单服务接口地址
    pay: "xxxxxxxxxxxxxxxxxxxx", // 支付服务接口地址(H5支付)
    midas: "xxxxxxxxxxxxxxxxxxxx", // 支付服务接口地址(米大师支付)
    survey: "xxxxxxxxxxxxxxxxxxxx", // 问卷调查服务接口地址
    customerService: "xxxxxxxxxxxxxxxxxxxx", // H5客服服务接口地址
    gameClub: "xxxxxxxxxxxxxxxxxxxx", // 游戏圈服务接口地址
    log: "xxxxxxxxxxxxxxxxxxxx", // 数据上报服务接口地址
    errorLog: "xxxxxxxxxxxxxxxxxxxx", // 日志上报服务接口地址
    dyb: "xxxxxxxxxxxxxxxxxxxx" // 冰柠乐渠道服务接口地址(上架至冰柠乐渠道时必填)
  },
  gameAppId: "xxxxxxxxxx", // 游戏在微信侧的 AppID
  appId: "xxxxxxxxxx", // 游戏在SDK开放平台侧的 AppID
  appVersion: "x.x.x.xx", // 游戏的版本号
  packageName: "xxx.xxxxxxx.xxx", // 游戏的应用包名
  channel: 1398, // 游戏渠道包ID
  mainChannel: 100708, // 推广主渠道ID
  secondChannel: 100709, // 推广次渠道ID
  heartbeatEnable: true, // 是否开启心跳数据上报,若开启,则SDK将每隔一分钟向服务器发送一条心跳数据
  reyunAppKey: "xxxxxxxxxx", // 游戏的热云 AppKey,不启用热云数据上报时请置空或移除该参数
  gravityEngineAccessToken: "xxxxxxxxxx", // 游戏的引力引擎 Access Token,不启用引力引擎数据上报时请置空或移除该参数
  gravityEnginePayEventEnable: true, // 注意,此参数为 true 时表示引力引擎付费事件由客户端上报,为 false 时表示引力引擎付费事件由服务端上报;默认为 true,设为 false 时,请于SDK中台系统配置服务端上报相关参数
  tencentUserActionId: xxxxxx, // 腾讯广告平台相关联的数据源ID,为数字类型,如:100001,不启用腾讯广告数据上报时请置空或移除该参数
  tencentSecretKey: "xxxxxxxxxx" // 腾讯广告平台相关联的加密密钥,为 32 位的字符串,如:5e853xxxxxxxxd57a690xxxxxxxxxxxx,不启用腾讯广告数据上报时请置空或移除该参数
});

// 实例常用属性
console.log(sdkInstance); // SDK实例对象
console.log(sdkInstance.system); // 系统信息
console.log(sdkInstance.system.platform); // 客户端设备类型,如android、ios、devtools等
console.log(sdkInstance.deviceId); // 设备唯一标识
console.log(sdkInstance.deviceOS); // 设备类型,如minigame_android、minigame_ios、minigame_devtools等
console.log(sdkInstance.gameAppId); // 游戏在微信侧的 AppID
console.log(sdkInstance.appId); // 游戏在SDK开放平台侧的 AppID
console.log(sdkInstance.appVersion); // 游戏的版本号
console.log(sdkInstance.packageName); // 游戏的应用包名
console.log(sdkInstance.channel); // 游戏渠道包ID
console.log(sdkInstance.mainChannel); // 推广主渠道ID
console.log(sdkInstance.secondChannel); // 推广次渠道ID

// 以下演示用户信息数据的获取方式,注意:用户信息数据仅在调用登录接口 sdkInstance.login(options) 成功后可用,登录前访问将导致报错!!!
console.log(sdkInstance.userInfo); // 用户信息
console.log(sdkInstance.userInfo.accountId); // 用户账号ID
console.log(sdkInstance.userInfo.loginType); // 用户登录方式
console.log(sdkInstance.userInfo.token); // 用户登录Token
console.log(sdkInstance.userInfo.userExtraInfo.openId); // 用户微信唯一标识(openId)
Last Updated: 2025/2/25 11:36:23