using TapTap.Support;
工单系统是厂商维度的,游戏在接入工单系统时需要绑定一个工单域名。
serverUrl 为用户初始化时配置的工单域名
rootCategoryID 也是用户在初始化时可选指定的,默认值为 -
,这个参数的意义参见 https://github.com/leancloud/ticket/wiki/Ticket-in-app-page-API#baseurl
callback 用于回调当前是否有未读的工单
TapSupport.Init("serverUrl","rootCategoryID",new TapSupportCallback
{
UnReadStatusChanged = (hasUnRead, exception) =>
{
Debug.Log($"hasUnRead:{hasUnRead} exception:{exception}");
}
});
当前版本仅支持匿名登录
游戏方可以自行维护匿名登录的 UUID ,如果传入的 UUID 为空,TapSupport
则会生成一个 UUID 并且写入 Application.persistentDataPath
中。
TapSupport.AnonymousLogin(string uuid);
工单的 Url 的构成是这样的,小括号代表可选:
https://{domain}/in-app/v1/categories/{rootCategoryID}{path}#{authInfo}(&metaData)(&fieldsData)
TapSupport
提供几个 API 用于帮忙游戏方生成工单 Url 以及设置默认的 field 和 metaData
// 设置默认的 fieldData 以及 metaData
TapSupport.SetDefaultFieldsData(Dictionary<string,object> filedsData);
TapSupport.SetDefaultMetaData(Dictionary<string,object> metaData);
// 生成工单
TapSupport.GetSupportWebUrl(string path, Dictionary<string, object> metaData,Dictionary<string, object> fieldsData)
游戏方可以通过 TapSupport
中的 Resume
以及 Pause
方法来进行轮询获取当前工单是否有未读消息。
TapSupport 通过 Timer 来进行轮询
TapSupport
在登录之后,或开始轮询获取当前是否有未读的工单,并且通过 TapSupportCallback
回调给开发者。
当前的轮询策略为 10s 一次,如果没有未读消息则增增加间隔时间为 20s ,每次增加的时间为 10s,直到最大间隔时间 300s,每次重新调用 Resume
方法时,会重置轮询时间。
TapSupport.Resume();
结束轮询时,会重制当前轮询时间。
TapSupport.Pause();