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();