egret-sdk-百度小游戏

命令

1
2
3
4
# debug
egret build --target baidugame
# release
egret publish --target baidugame

非接入文档内容

定义sdk的声明文件

baidu_sdk.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
declare module swan
{
// 登录
// timeout number 否 - 超时时间,单位ms
// success Function 否 - 接口调用成功的回调函数
// fail Function 否 - 接口调用失败的回调函数
// complete Function 否 - 接口调用结束的回调函数(调用成功、失败都会执行)
//
// code String 用户登录凭证(有效期五分钟),开发者需要在开发者服务器后台调用 api,使用 code 换取 session_key 等信息。
export function login(data);

// orderInfo Object 是 - 订单信息
// dealId 是 跳转百度收银台支付必带参数之一,是百度收银台的财务结算凭证,与账号绑定的结算协议一一对应,每笔交易将结算到dealId对应的协议主体。详见核心参数获取与组装与组装。
// appKey 是 支付能力开通后分配的支付appKey,用以表示应用身份的唯一ID,在应用审核通过后进行分配,一经分配后不会发生更改,来唯一确定一个应用。详见核心参数获取与组装。
// totalAmount 是 订单金额,单位为人民币分。
// tpOrderId 是 商户平台自己记录的订单ID,当支付状态发生变化时,会通过此订单ID通知商户。
// dealTitle 是 订单的名称
// signFieldsRange 是 固定值1
// rsaSign 是 对appKey+dealId+tpOrderId+totalAmount进行RSA加密后的签名,防止订单被伪造。签名过程见 签名与验签。
// bizInfo 是 订单详细信息,需要是一个可解析为JSON Object的字符串。字段内容见: bizInfo组装。
// bannedChannels StringArray 否 - 需要隐藏的支付方式
// success Function 否 - 接口调用成功的回调函数
// fail Function 否 - 接口调用失败的回调函数
// complete Function 否 - 接口调用结束的回调函数(调用成功、失败都会执行)
export function requestPolymerPayment(data);

// success Function 否 - 接口调用成功的回调函数
// fail Function 否 - 接口调用失败的回调函数
// complete Function 否 - 接口调用结束的回调函数(调用成功、失败都会执行)
export function checkSession(data);

// isLogin Boolean 宿主 App登录状态 true: 已登录,false: 未登录
export function isLoginSync();

// success Function 否 - 接口调用成功的回调函数
// errno String errno
// data Object {swanid}
// fail Function 否 - 接口调用失败的回调函数
// complete Function 否 - 接口调用结束的回调函数(调用成功、失败都会执行)
export function getSwanId(data);

// opts Object {} 是 调用该方法时,要传入的对象参数
// opts.swanIdList Array.<string> [] 否 要获取信息的用户的 swanId 数组,如果要获取当前用户的信息,则将该属性值设为 ['selfSwanId'] 即可
// opts.success function 否 接口调用成功的回调函数
// opts.fail function 否 接口调用失败的回调函数
// opts.complete function 否 接口调用完成的回调函数(接口调用成功、失败都会执行)
export function getUserInfo(data);

export function getSystemInfoSync();
}

分包处理

game.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
require('./swan-game-adapter.js');
require('./manifest.js');
require('./egret.baidugame.js');

const runOptions = {
//以下为自动修改,请勿修改
//The following is automatically modified, please do not modify
//----auto option start----
entryClassName: "Main",
orientation: "portrait",
frameRate: 30,
scaleMode: "fixedWidth",
contentWidth: 900,
contentHeight: 1600,
showFPS: false,
fpsStyles: "x:0,y:0,size:12,textColor:0xffffff,bgAlpha:0.9",
showLog: false,
maxTouches: 2,
//----auto option end----
audioType: 0,
renderMode:"webgl",
calculateCanvasScaleFactor: function (context) {
var backingStore = context.backingStorePixelRatio ||
context.webkitBackingStorePixelRatio ||
context.mozBackingStorePixelRatio ||
context.msBackingStorePixelRatio ||
context.oBackingStorePixelRatio ||
context.backingStorePixelRatio || 1;
return (window.devicePixelRatio || 1) / backingStore;
}
};
const runEgret = function () {
egret.runEgret(runOptions);
}


if (swan.loadSubpackage) {
console.warn("========分包")
require("./EgretSubPackageLoading.js");
runOptions.entryClassName = "EgretSubPackageLoading";
runEgret();

let task = swan.loadSubpackage({
// 开发者根据自身需求更改
name: "subPack1",
success: function () {
EgretSubPackageLoading.instance.onSuccess();
console.warn("========分包完成")

}
});

task.onProgressUpdate(res => {
EgretSubPackageLoading.instance.setProgress(res);
console.warn("========分包进度", res)
})
}
else {
//
require("./subPack1/game.js");
runEgret();

console.warn("========没分包")
}
game.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"deviceOrientation": "portrait",
"networkTimeout": {
"request": 5000,
"connectSocket": 5000,
"uploadFile": 5000,
"downloadFile": 5000
},
"openDataContext": "openDataContext",
"subpackages": [
{
"name": "subPack1",
"root": "subPack1"
}
]
}

签名

  • 支付
1
2
3
let rsaSign = crypto.createSign('RSA-SHA1');
let str = "count=2&dealId=7423328&giftCardMoney=100&hbBalanceMoney=100&hbMoney=100&orderId=800020199&partnerId=1000000003&payMoney=1200&payTime=1463037529&payType=9101&promoDetail={}&promoMoney=100&status=2&tpOrderId=33330020199&unitPrice=800"
let sign = rsaSign.update(iconv.encode(str, "utf-8")).sign(this.RSA_KEY,'base64');

  • 像素采样不支持,使用会闪屏
  • 图片的pixelHitTest不支持,使用会闪屏

链接

百度小程序官网
rsa生成

日志

时间 进度