#if UNITY_WEBGL && WEBGL_WX using System; using System.Collections.Generic; using WeChatWASM; namespace HC { public class HCWXBase : HCSingleton, HCIBase { public Action OpenCustomerServiceFail; public Action OpenCustomerServiceSuccess; public void Vibrate(int shakeType, float intensity = 1) { WX.VibrateShort(new VibrateShortOption()); } public void OpenCustomerService(Dictionary param) { var sessionFrom = param.GetValue("sessionFrom", "") as string; var showMessageCard = (bool)param.GetValue("showMessageCard", false); var sendMessageTitle = param.GetValue("sendMessageTitle", "") as string; var sendMessagePath = param.GetValue("sendMessagePath", "") as string; var sendMessageImg = param.GetValue("sendMessageImg", "") as string; var option = new OpenCustomerServiceConversationOption { success = OnOpenCustomerServiceSuccess, fail = OnOpenCustomerServiceFail, sessionFrom = sessionFrom, showMessageCard = showMessageCard, sendMessageTitle = sendMessageTitle, sendMessagePath = sendMessagePath, sendMessageImg = sendMessageImg }; WX.OpenCustomerServiceConversation(option); } public void ExitApp() { WX.ExitMiniProgram(new ExitMiniProgramOption { success = _=>{}, fail = _=>{}, complete = _=>{} }); } private void OnOpenCustomerServiceFail(GeneralCallbackResult obj) { HCDebugger.LogDebug($"OnOpenCustomerServiceFail obj.errMsg = {obj.errMsg} OpenCustomerServiceFail = {OpenCustomerServiceFail}"); OpenCustomerServiceFail?.Invoke(obj.errMsg); } private void OnOpenCustomerServiceSuccess(OpenCustomerServiceConversationSuccessCallbackResult obj) { HCDebugger.LogDebug($"OnOpenCustomerServiceSuccess obj.path = {obj.path} msg = {obj.errMsg} OpenCustomerServiceSuccess = {OpenCustomerServiceSuccess}"); OpenCustomerServiceSuccess?.Invoke(new CustomerServiceSuccessBean() { path = obj.path, errMsg = obj.errMsg, query = obj.query }); } } public struct CustomerServiceSuccessBean { public string path; public string errMsg; public Dictionary query; } } #endif