跳到主要内容

客服模块回调(CustomerResultObserver)

如果您使用的是 Unreal Engine,请参见 Unreal Engine SDK 的 CustomerResultObserver

注册 Player Network SDK 客服模块回调,用以接收客服操作通知,目前只在关闭客服 UI 以及删号时会触发回调。更多关于回调数据结构,请参见 CustomerResult。更多关于 WebView 回调,请参见 WebViewResultObserver

注意

强烈建议游戏在应用启动函数中进行注册。

函数定义

// 增加 INTLCustomerResult 回调
public static void AddCustomerResultObserver(OnINTLResultHandler<INTLCustomerResult> callback);
// 移除 INTLCustomerResult 回调
public static void RemoveCustomerResultObserver(OnINTLResultHandler<INTLCustomerResult> callback);

代码示例

// 增加回调
public void AddCustomerObserver()
{
INTLAPI.AddCustomerResultObserver(OnCustomerResultEvent);
INTLAPI.AddWebViewResultObserver(OnWebViewRetEvent);
}

// 移除回调
public void RemoveCustomerObserver()
{
INTLAPI.RemoveCustomerResultObserver(OnCustomerResultEvent);
INTLAPI.RemoveWebViewResultObserver(OnWebViewRetEvent);
}

// INTLCustomerResult 的回调处理
public void OnCustomerResultEvent(INTLCustomerResult ret)
{
Debug.Log($"MethodID: {ret.MethodId}");
string methodTag = "";
if (ret.MethodId == (int)INTLMethodID.INTL_CUSTOMER_INIT)
{
methodTag = "InitCustomer";
}

if (ret.MsgType == 100) // 100 代表关闭界面
{
m_sample.ShowLogInNewLine(methodTag + ": close Customer Service UI.");
}
else
{
m_sample.ShowLogInNewLine("MsgType: " + ret.MsgType.ToString());
}
}

// INTLWebViewResult 的删号回调处理
private void OnWebViewRetEvent(INTLWebViewResult webViewRet)
{
#if INTL_OS_WINDOWS
#else
if (webViewRet.MethodId == (int) INTLMethodID.INTL_WEBVIEW_JS_CALL)
{
// 这里是非unity进程,注意不要做unity相关的操作
INTLLog.Log("before AddMessage in customer");
CustomerSample.AddMessage("WebViewRetEvent:" + Tools.Instance.GetRetString(webViewRet));
}
else
{
m_sample.ShowLogInNewLine("WebViewRetEvent:" + Tools.Instance.GetRetString(webViewRet));
}
#endif
}