GUAQrCodeResultObservers [仅限 MSD]
[仅限 MSDK] PC 端注册二维码回调的回调,游戏需要对回调函数进行处理。更多关于回调数据结构,请参见 GUAQrCodeRet.
注意
强烈建议游戏在应用启动函数中进行注册。
数据结构
GUAQrCodeRet
参数 | 类型 | 说明 |
---|---|---|
ChannelID | int | 登录的渠道 ID |
Channel | string | 登录的渠道 |
QrCodeUrl | string | 二维码地址 |
函数定义
- Unity
- Unreal Engine
// QrCodeRetEvents 回调, PC 登录 QR 代码回调
事件 OnResultHandler<GUAQrCodeRet> QrCodeRetEvents;
class GUA_EXTERN GUAAccountObserver
{
public:
virtual ~GUAAccountObserver() {};
#if GUA_OS_WINDOWS
virtual void OnQrCodeNotify(const GUAQrCodeResult &qr_code_result) {};
#endif
};
代码示例
- Unity
- Unreal Engine
#if GCLOUD_MSDK_WINDOWS
public void OnQrCodeRetEvent (GUAQrCodeRet qrCodeRet)
{
//登录 QR 码回调(仅 SDK 形式授权需要,Web 形式不需要)
Debug.Log ("OnQrCodeRetEvent in Login." + " channel:" + qrCodeRet.Channel + " qrCodeUrl:" + qrCodeRet.QrCodeUrl);
if (qrCodeRet.Channel == "QQ")
{
StartCoroutine (loadImage (qrCodeRet.QrCodeUrl));
}
else if (qrCodeRet.Channel == "WeChat")
{
if (qrEncodeController != null)
{
qrEncodeController.Encode(qrCodeRet.QrCodeUrl);
}
}
}
#endif
#if MSDK_PLATFORM_WINDOWS
void GUABaseCallBacks::OnQrCodeNotify(const GUA::GUAQrCodeResult &qrCodeRet) {
//登录 QR 码回调(仅 SDK 形式授权需要,Web 形式不需要)
std::string url_str = "start ";
if (qrCodeRet.channel == "QQ") {
url_str = url_str + qrCodeRet.qr_code_url;
} else if (qrCodeRet.channel == "WeChat") {
url_str = url_str + "https://cli.im/api/qrcode/code?text=" + qrCodeRet.qr_code_url;
}
system(url_str.c_str());
}
#endif