コード例 #1
0
        public static void PresentChannelInterface(IntPtr instancePtr, string inviteChannelJson,
                                                   string invitePackageJson,
                                                   IntPtr onCompletePtr, IntPtr onCancelPtr, IntPtr onFailurePtr)
        {
            var channel   = new InviteChannel().ParseFromJson(inviteChannelJson.ToDict());
            var package   = new InvitePackage().ParseFromJson(invitePackageJson.ToDict());
            var onFailure = new Action <GetSocialError>(exception =>
            {
                GetSocialNativeBridgeIOS._gs_executeInviteFailedCallback(onFailurePtr, exception.ErrorCode,
                                                                         exception.Message);
            });
            var plugin = instancePtr.Cast <InviteChannelPlugin>();

            try
            {
                plugin.PresentChannelInterface(channel, package,
                                               () => { GetSocialNativeBridgeIOS._gs_executeInviteSuccessCallback(onCompletePtr); },
                                               () => { GetSocialNativeBridgeIOS._gs_executeInviteCancelledCallback(onCancelPtr); },
                                               onFailure);
            }
            catch (Exception e)
            {
                onFailure(new GetSocialError(e.Message));
            }
        }
コード例 #2
0
 public static void OnUserActionPerformedCallback(IntPtr actionPtr, int userPerformedAction, IntPtr finalizeActionPtr)
 {
     if (actionPtr != IntPtr.Zero)
     {
         var action = actionPtr.Cast <OnUserActionPerformed>();
         action((GetSocial.UserPerformedAction)userPerformedAction,
                shouldPerformAction =>
                GetSocialNativeBridgeIOS._executeOnUserPerformedActionFinalize(finalizeActionPtr, shouldPerformAction));
     }
 }
        public static void OnUserIdentityConflict(IntPtr actionPointer,
                                                  string currentUserSerialized,
                                                  string remoteUserSerialized,
                                                  IntPtr resolveConflictCallbackPtr)
        {
            var currentUser = new User(new JSONObject(currentUserSerialized));
            var remoteUser  = new User(new JSONObject(remoteUserSerialized));

            var action = actionPointer.Cast <CurrentUser.OnAddIdentityConflictDelegate>();

            action(currentUser, remoteUser, resolutionStrategy =>
                   GetSocialNativeBridgeIOS._executeAddUserIndentityConflictResolver(resolveConflictCallbackPtr, (int)resolutionStrategy));
        }
コード例 #4
0
        public static void InviteFriends(IntPtr instancePtr, string subject, string text, string referralDataUrl, string base64image, IntPtr onSuccessPtr, IntPtr onCancelPtr, IntPtr onFailurePtr)
        {
            var instance = instancePtr.Cast <IInvitePlugin>();
            var image    = base64image != null?Convert.FromBase64String(base64image) : null;

            instance.InviteFriends(
                subject: subject,
                text: text,
                referralDataUrl: referralDataUrl,
                image: image,
                onSuccess: (requestId, invitedFriends) => {
                int invitedFriendsCount      = invitedFriends != null ? invitedFriends.Count : 0;
                string[] invitedFriendsArray = invitedFriends != null ? invitedFriends.ToArray() : null;
                GetSocialNativeBridgeIOS._executeInvitedFriendsCallback(onSuccessPtr, requestId, invitedFriendsCount, invitedFriendsArray);
            },
                onCancel: () => GetSocialNativeBridgeIOS._executeCompleteCallback(onCancelPtr),
                onFailure: (exception) => GetSocialNativeBridgeIOS._executeErrorCallback(onFailurePtr, exception.Message)
                );
        }