生命周期

优质
小牛编辑
145浏览
2023-12-01

Lifecycle 生命周期函数

用于监听游戏进入前台、后台、最大化、最小化、网络状态改变、游戏关闭、游戏分享事件。

取消监听需要传入和监听函数同一个回调函数。

BK.onEnterForeground(Function())

监听游戏进入前台事件,手Q进程从后台回到前台

手Q版本:>7.6.5

示例:

function enterForegroundListener(){
    BK.Script.log(0, 0, '进入前台');
}
BK.onEnterForeground(enterForegroundListener);

BK.onEnterBackground(Function())

监听游戏进入后台事件,手Q进程从前台回到后台时会回调

手Q版本:>7.6.5

示例:

function enterBackgroundListener(){
    BK.Script.log(0, 0, '退出前台');
}
BK.onEnterBackground(enterBackgroundListener);

BK.onGameClose(Function())

监听游戏关闭事件,开发者需处理销毁动作:上报用户成绩

手Q版本:>7.6.5

示例:

function gameCloseListener(){
    BK.Script.log(0, 0, '关闭游戏');
    //上报操作
    //...
}
BK.onGameClose(gameCloseListener);

BK.onMaximize(Function())

监听游戏最大化事件

手Q版本:>7.6.5

示例:

function maximizeListener(){
    BK.Script.log(0, 0, '最大化');
}
BK.onMaximize(maximizeListener);

BK.onMinimize(Function())

监听游戏最小化事件,用户点击"收起游戏"时回调

手Q版本:>7.6.5

示例:

function minimizeListener(){
    BK.Script.log(0, 0, '最大化');
}
BK.onMinimize(minimizeListener);

BK.onNetworkChange(Function(Object))

监听手机网络变化

手Q版本:>7.6.5

Object属性

属性名类型说明
statenumber网络变化的状态码

state取值:

{
    'NoneToMobileNetwork' = 1,   //无网络到移动网络
    'NoneToWifi' = 2,            //无网络到WiFi网络
    'MobileNetworkToWifi' = 3,     //移动网络到WiFi网络
    'MobileNetworkToNone' = 4,   //移动网络到无网络
    'WifiToNone' = 5,            //WiFi到无网络
    'WifiToMobileNetwork' = 6     //WiFi到移动网络
}

示例:

function onNetworkChangeListener(data:BK.NetworkChangeResult){
    if(data.state == BK.NetworkState.NoneToMobileNetwork){
        BK.Script.log(0, 0, '从无网络到移动网络');
    }else if(data.state == BK.NetworkState.NoneToWifi){
        BK.Script.log(0, 0, '无网络到WiFi网络');
    }else if(data.state == BK.NetworkState.MobileNetworkToWifi){
        BK.Script.log(0, 0, '移动网络到WiFi网络');
    }else if(data.state == BK.NetworkState.MobileNetworkToNone){
        BK.Script.log(0, 0, '移动网络到无网络');
    }else if(data.state == BK.NetworkState.WifiToNone){
        BK.Script.log(0, 0, 'WiFi到无网络');
    }else if(data.state == BK.NetworkState.WifiToMobileNetwork){
        BK.Script.log(0, 0, 'WiFi到移动网络');
    }
}
BK.onNetworkChange(onNetworkChangeListener);

7. BK.onGameShareComplete(Function(Object))

分享完成时回调

手Q版本:>7.6.5

Object属性

属性类型说明
retCodenumber0为成功 1为失败 2为取消
shareDestnumber0为QQ 1为QZone 2为微信 3为朋友圈
isFirstShareboolean是否为第一次分享

示例:

function onShareCompleteListener(data){
    BK.Script.log(0, 0, "分享完成: retCode:"+data.retCode + ',isFirstShare:'+data.isFirstShare + ',dest:'+data.shareDest);
    BK.offGameShareComplete(onShareCompleteListener);
};
BK.onGameShareComplete(onShareCompleteListener);

BK.onGameShare(Function())

调用分享接口时回调

手Q版本:7.6.5

示例:

function onShareListener(){
    BK.Script.log(0, 0, "分享了");
    BK.offGameShare(onShareListener);
}
BK.onGameShare(onShareListener);

BK.offEnterForeground(Function())

取消监听游戏进入前台事件

手Q版本:7.6.5

示例:

function enterForegroundListener(){
    BK.Script.log(0, 0, '进入前台');
    BK.offEnterForeground(enterForegroundListener);//取消监听
}
BK.onEnterForeground(enterForegroundListener);

BK.offEnterBackground(Function())

取消监听游戏进入后台事件

手Q版本:7.6.5

示例:

function enterBackgroundListener(){
    BK.Script.log(0, 0, '退出前台');
    BK.offEnterForeground(enterBackgroundListener);//取消监听
}
BK.onEnterBackground(enterBackgroundListener);

BK.offGameClose(Function())

取消监听游戏关闭事件

手Q版本:7.6.5

示例:

function gameCloseListener(){
    BK.Script.log(0, 0, '关闭游戏');
    //上报操作
    //...
}
BK.onGameClose(gameCloseListener);

//其他操作
BK.offGameClose(gameCloseListener);//取消监听

BK.offMaximize(Function())

监听游戏最大化事件

手Q版本:7.6.5

示例:

function maximizeListener(){
    BK.Script.log(0, 0, '最大化');
    BK.offMaximize(maximizeListener);//取消监听
}
BK.onMaximize(maximizeListener);

BK.offMinimize(Function())

取消监听游戏最小化事件

手Q版本:7.6.5

示例:

function minimizeListener(){
    BK.Script.log(0, 0, '最大化');
    BK.offMinimize(minimizeListener);//取消监听
}
BK.onMinimize(minimizeListener);

14. BK.offNetworkChange(Function(Object))

取消监听手机网络变化

手Q版本:7.6.5

示例:

function onNetworkChangeListener(data:BK.NetworkChangeResult){
    BK.Script.log(0, 0, 'state:'+data.state);
     BK.offNetworkChange(onNetworkChangeListener);//取消监听
}
BK.onNetworkChange(onNetworkChangeListener);

15. BK.offGameShareComplete(Function(Object))

取消监听分享完成事件

手Q版本:7.6.5

示例:

function onShareCompleteListener(data){
    BK.Script.log(0, 0, "分享完成: retCode:"+data.retCode + ',isFirstShare:'+data.isFirstShare + ',dest:'+data.shareDest);
    BK.offGameShareComplete(onShareCompleteListener);//取消监听
};
BK.onGameShareComplete(onShareCompleteListener);

16. BK.offGameShare(Function())

取消监听分享事件

手Q版本:7.6.5

示例:

function onShareListener(){
    BK.Script.log(0, 0, "分享了");
    BK.offGameShare(onShareListener);//取消监听
}
BK.onGameShare(onShareListener);