| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240 | using System;using UnityEngine;using System.Collections;using System.Collections.Generic;using System.Runtime.InteropServices;namespace cn.sharesdk.unity3d {#if UNITY_IPHONE || UNITY_IOS	public class iOSImpl : ShareSDKImpl {		private string _callbackObjectName = "Main Camera";		private string _appKey;				[DllImport("__Internal")]		private static extern void __iosShareSDKRegisterAppAndSetPltformsConfig(string appKey, string configInfo);				[DllImport("__Internal")]		private static extern void __iosShareSDKAuthorize(int reqID, int platType, string observer);				[DllImport("__Internal")]		private static extern void __iosShareSDKCancelAuthorize(int platType);				[DllImport("__Internal")]		private static extern bool __iosShareSDKHasAuthorized(int platType);				[DllImport("__Internal")]		private static extern void __iosShareSDKGetUserInfo(int reqID, int platType, string observer);				[DllImport("__Internal")]		private static extern void __iosShareSDKShare(int reqID, int platType, string content, string observer);		[DllImport("__Internal")]		private static extern void __iosShareSDKShareWithActivity(int reqID, int platType, string content, string observer);		[DllImport("__Internal")]		private static extern void __iosShareSDKOneKeyShare(int reqID, string platTypes, string content, string observer);				[DllImport("__Internal")]		private static extern void __iosShareSDKShowShareMenu(int reqID, string platTypes, string content, int x, int y, string observer);				[DllImport("__Internal")]		private static extern void __iosShareSDKShowShareView(int reqID, int platType, string content, string observer);				[DllImport("__Internal")]		private static extern void __iosShareSDKGetFriendsList(int reqID, int platType,int count, int page, string observer);				[DllImport("__Internal")]		private static extern void __iosShareSDKFollowFriend(int reqID, int platform,string account, string observer);				[DllImport("__Internal")]		private static extern string __iosShareSDKGetCredential(int platType);				[DllImport("__Internal")]		private static extern bool __iosShareSDKIsClientInstalled(int platType);		[DllImport("__Internal")]		private static extern void __iosShareSDKShareWithContentName(int reqID, int platform, string contentName, string customFields, string observer);		[DllImport("__Internal")]		private static extern void __iosShareSDKShowShareMenuWithContentName(int reqID, string contentName, string customFields, string platTypes, int x, int y, string observer);		[DllImport("__Internal")]		private static extern void __iosShareSDKShowShareViewWithContentName(int reqID, int platform, string contentName, string customFields, string observer);		[DllImport("__Internal")]		private static extern bool __iosShareSDKOpenMiniProgram(String userName, String path, int miniProgramType);        [DllImport("__Internal")]        private static extern bool __iosShareSDKWXRequestSendTokenToGetUser(String uid, String token);        [DllImport("__Internal")]        private static extern bool __iosShareSDKWXRequestToken(String observer);        [DllImport("__Internal")]        private static extern bool __iosShareSDKWXRefreshSendTokenToGetUser(String token);        [DllImport("__Internal")]        private static extern bool __iosShareSDKWXRefreshRequestToken(String observer);		[DllImport("__Internal")]		private static extern void __iosShareSDKShareWithCommand(string customFields, string observer);		public iOSImpl(GameObject go) {			try {				_callbackObjectName = go.name;			} catch(Exception e) {				Console.WriteLine("{0} Exception caught.", e);			}		}		public override void InitSDK(string appKey) {			_appKey = appKey;		}		public override void InitSDK(string appKey, string secret) {			_appKey = appKey;		}		public override void PrepareLoopShare() {			throw new NotImplementedException();		}		public override void setChannelId() {			throw new NotImplementedException();		}		public override void SetPlatformConfig(Hashtable configs) {			String json = MiniJSON.jsonEncode(configs);			if(Application.platform == RuntimePlatform.IPhonePlayer)			{				__iosShareSDKRegisterAppAndSetPltformsConfig(_appKey, json);			}		}		public override void Authorize(int reqId, PlatformType platform) {			__iosShareSDKAuthorize(reqId, (int)platform, _callbackObjectName);		}		public override void CancelAuthorize(PlatformType platform) {			__iosShareSDKCancelAuthorize((int)platform);		}		public override bool IsAuthorized(PlatformType platform) {			return __iosShareSDKHasAuthorized((int)platform);		}		public override bool IsClientValid(PlatformType platform) {			return __iosShareSDKIsClientInstalled((int)platform);		}		public override void GetUserInfo(int reqId, PlatformType platform) {			__iosShareSDKGetUserInfo(reqId, (int)platform, _callbackObjectName);		}		public override void ShareContent(int reqId, PlatformType platform, ShareContent content) {			__iosShareSDKShare(reqId, (int)platform, content.GetShareParamsStr(), _callbackObjectName);		}		public override void ShareContent(int reqId, PlatformType[] platforms, ShareContent content) {			string platTypesStr = null;			if (platforms != null) {				List<int> platTypesArr = new List<int>();				foreach (PlatformType type in platforms) {					platTypesArr.Add((int)type);				}				platTypesStr = MiniJSON.jsonEncode(platTypesArr.ToArray());			}			__iosShareSDKOneKeyShare(reqId, platTypesStr, content.GetShareParamsStr(), _callbackObjectName);		}		public override void ShowPlatformList(int reqId, PlatformType[] platforms, ShareContent content, int x, int y) {			string platTypesStr = null;			if (platforms != null) {				List<int> platTypesArr = new List<int>();				foreach (PlatformType type in platforms) {					platTypesArr.Add((int)type);				}				platTypesStr = MiniJSON.jsonEncode(platTypesArr.ToArray());			}			__iosShareSDKShowShareMenu(reqId, platTypesStr, content.GetShareParamsStr(), x, y, _callbackObjectName);		}		public override void ShowShareContentEditor(int reqId, PlatformType platform, ShareContent content) {			__iosShareSDKShowShareView(reqId, (int)platform, content.GetShareParamsStr(), _callbackObjectName);		}		public override void ShareWithContentName(int reqId, PlatformType platform, string contentName, Hashtable customFields) {			String customFieldsStr = MiniJSON.jsonEncode(customFields);			__iosShareSDKShareWithContentName(reqId, (int)platform, contentName, customFieldsStr,  _callbackObjectName);		}		public override void ShowPlatformListWithContentName(int reqId, string contentName, Hashtable customFields, PlatformType[] platforms, int x, int y) {			String customFieldsStr = MiniJSON.jsonEncode(customFields);			string platTypesStr = null;			if (platforms != null) {				List<int> platTypesArr = new List<int>();				foreach (PlatformType type in platforms) {					platTypesArr.Add((int)type);				}				platTypesStr = MiniJSON.jsonEncode(platTypesArr.ToArray());			}			__iosShareSDKShowShareMenuWithContentName(reqId, contentName, customFieldsStr, platTypesStr, x, y, _callbackObjectName);		}		public override void ShowShareContentEditorWithContentName(int reqId, PlatformType platform, string contentName, Hashtable customFields) {			String customFieldsStr = MiniJSON.jsonEncode(customFields);			__iosShareSDKShowShareViewWithContentName(reqId, (int)platform, contentName, customFieldsStr, _callbackObjectName);		}		public override void GetFriendList(int reqID, PlatformType platform, int count, int page) {			__iosShareSDKGetFriendsList(reqID, (int)platform, count, page, _callbackObjectName);		}		public override void AddFriend(int reqID, PlatformType platform, string account) {			__iosShareSDKFollowFriend(reqID, (int)platform, account, _callbackObjectName);		}		public override Hashtable GetAuthInfo(PlatformType platform) {			string credStr = __iosShareSDKGetCredential((int)platform);			return (Hashtable)MiniJSON.jsonDecode(credStr);		}		public override void DisableSSO(bool disable) {			Console.WriteLine ("#waring : no this interface on iOS");		}		public override bool openMiniProgram(string userName, string path, int miniProgramType) {			return __iosShareSDKOpenMiniProgram(userName, path, miniProgramType);		}		public override void getWXRequestToken() {            __iosShareSDKWXRequestToken(_callbackObjectName);		}		public override void getWXRefreshToken() {            __iosShareSDKWXRefreshRequestToken(_callbackObjectName);		}		public override void sendWXRefreshToken(string token) {            __iosShareSDKWXRefreshSendTokenToGetUser(token);		}		public override void sendWXRequestToken(string uid, string token) {            __iosShareSDKWXRequestSendTokenToGetUser(uid, token);		}		public override void shareSDKWithCommand(Hashtable content) {			String customFieldsStr = MiniJSON.jsonEncode(content);			__iosShareSDKShareWithCommand(customFieldsStr, _callbackObjectName);		}				public override void ShareContentWithActivity(int reqID, PlatformType platform, ShareContent content) {			__iosShareSDKShareWithActivity(reqID, (int)platform, content.GetShareParamsStr(), _callbackObjectName);		}	}#endif}
 |