/** * Сгенерировать событие для API соц. сети * @param eventName имя события * @param callback callback-функция в которую будет передан ответ */ public static void callEvent(string eventName, functionPointer callback) { string callPatern; callPatern = _eventAPI + "('" + eventName +"', function(data) {response(" + registerCallBack(callback).ToString() + ", data)})"; _instance.ExternalCall(callPatern); }
//-------------------------------------- // PRIVATE METHODS //-------------------------------------- private static int registerCallBack(functionPointer callback) { stackId ++ ; DebugConsole.LogWarning("registerCallBack" + stackId); APICallStack.Add(stackId, callback); return stackId; }
/** * Подключить перехватчик событий генерируемые API соц. сетью * @param eventName названия события * @param callback callback-функция которорая будет обрабатывать это событие */ public static void addCallback(string eventName, functionPointer callback) { Application.ExternalCall(_eventCallbackAPI, eventName, registerCallBack(callback)); }
/** * Выполнить метод API соц. сети * Если callback не указан, exec() попытается вернуть значение * @param method вызываемый метод соц. сети * @param args аргументы передаваемые серверу * @param callback callback-функция в которую будет передан ответ */ public static void exec(string method, string args, functionPointer callback) { string callPatern; callPatern = _callAPI + "('" + method +"'," + args + ", " + _callbackTpl.Replace(CALLBACK_PATTERN, registerCallBack(callback).ToString()) + ")"; _instance.ExternalCall(callPatern); }