ShareSDKUnity3DBridge.m 182 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859
  1. //
  2. // ShareSDKUnity3DBridge.m
  3. // Unity-iPhone
  4. //
  5. // Created by 陈 剑东 on 15/7/28.
  6. // Copyright (c) 2015年 mob. All rights reserved.
  7. //
  8. #import "ShareSDKUnity3DBridge.h"
  9. #import <ShareSDK/ShareSDK.h>
  10. #import <ShareSDK/ShareSDK+Base.h>
  11. #import <ShareSDKExtension/ShareSDK+Extension.h>
  12. #import <ShareSDKExtension/SSDKFriendsPaging.h>
  13. #import <ShareSDKUI/ShareSDK+SSUI.h>
  14. #import <ShareSDKExtension/SSEShareHelper.h>
  15. #import <ShareSDKConnector/ShareSDKConnector.h>
  16. #import <ShareSDKConfigFile/ShareSDK+XML.h>
  17. #import <MOBFoundation/MOBFJson.h>
  18. #import <MOBFoundation/MOBFRegex.h>
  19. #import <MOBFoundation/MOBFDevice.h>
  20. #define __SHARESDK_WECHAT__
  21. #define __SHARESDK_QQ__
  22. #define __SHARESDK_SINA_WEIBO__
  23. #define __SHARESDK_RENREN__
  24. //#define __SHARESDK_KAKAO__
  25. #define __SHARESDK_YIXIN__
  26. #define __SHARESDK_FACEBOOK_MSG__
  27. #define __SHARESDK_ALIPAYSOCIAL__
  28. //#define __SHARESDK_DINGTALK__
  29. //#define __SHARESDK_MEIPAI__
  30. #ifdef __SHARESDK_WECHAT__
  31. #import "WXApi.h"
  32. #endif
  33. #ifdef __SHARESDK_QQ__
  34. #import <TencentOpenAPI/TencentOAuth.h>
  35. #import <TencentOpenAPI/QQApiInterface.h>
  36. #endif
  37. #ifdef __SHARESDK_SINA_WEIBO__
  38. #import "WeiboSDK.h"
  39. #endif
  40. #ifdef __SHARESDK_RENREN__
  41. #import <RennSDK/RennSDK.h>
  42. #endif
  43. #ifdef __SHARESDK_KAKAO__
  44. #import <KakaoOpenSDK/KakaoOpenSDK.h>
  45. #endif
  46. #ifdef __SHARESDK_YIXIN__
  47. #import "YXApi.h"
  48. #endif
  49. #ifdef __SHARESDK_FACEBOOK_MSG__
  50. #import <FBSDKMessengerShareKit/FBSDKMessengerShareKit.h>
  51. #endif
  52. #ifdef __SHARESDK_ALIPAYSOCIAL__
  53. #import "APOpenAPI.h"
  54. #endif
  55. #ifdef __SHARESDK_DINGTALK__
  56. #import <DTShareKit/DTOpenAPI.h>
  57. #endif
  58. #ifdef __SHARESDK_MEIPAI__
  59. #import <MPShareSDK/MPShareSDK.h>
  60. #endif
  61. static UIView *_refView = nil;
  62. #if defined (__cplusplus)
  63. extern "C" {
  64. #endif
  65. /**
  66. * @brief 配置SDK并初始化
  67. *
  68. * @param appKey ShareSDK的AppKey
  69. * @param configInfo 配置信息
  70. */
  71. extern void __iosShareSDKRegisterAppAndSetPltformsConfig (void *appKey, void*configInfo);
  72. /**
  73. * 用户授权
  74. *
  75. * @param reqID 流水号
  76. * @param platType 平台类型
  77. * @param observer 观察回调对象名称
  78. */
  79. extern void __iosShareSDKAuthorize (int reqID, int platType, void *observer);
  80. /**
  81. * @brief 取消用户授权
  82. *
  83. * @param platType 平台类型
  84. */
  85. extern void __iosShareSDKCancelAuthorize (int platType);
  86. /**
  87. * @brief 判断用户是否授权
  88. *
  89. * @param platType 平台类型
  90. *
  91. * @return YES 表示已经授权,NO 表示尚未授权
  92. */
  93. extern bool __iosShareSDKHasAuthorized (int platType);
  94. /**
  95. * @brief 检测是否安装客户端
  96. *
  97. * @param platType 平台类型
  98. *
  99. * @return YES 表示已经安装,NO 表示尚未安装
  100. */
  101. extern bool __iosShareSDKIsClientInstalled (int platType);
  102. /**
  103. * @brief 获取用户信息
  104. *
  105. * @param reqID 流水号
  106. * @param platType 平台类型
  107. * @param observer 观察回调对象名称
  108. */
  109. extern void __iosShareSDKGetUserInfo (int reqID, int platType, void *observer);
  110. /**
  111. * @brief 分享内容
  112. *
  113. * @param reqID 流水号
  114. * @param platType 平台类型
  115. * @param content 分享内容
  116. * @param observer 观察回调对象名称
  117. */
  118. extern void __iosShareSDKShare (int reqID, int platType, void *content, void *observer);
  119. /**
  120. * @brief 一键分享内容
  121. *
  122. * @param reqID 流水号
  123. * @param platTypes 平台类型列表
  124. * @param content 分享内容
  125. * @param observer 观察回调对象名称
  126. */
  127. extern void __iosShareSDKOneKeyShare (int reqID, void *platTypes, void *content, void *observer);
  128. /**
  129. * @brief 显示分享菜单
  130. *
  131. * @param reqID 流水号
  132. * @param platTypes 平台类型列表
  133. * @param content 分享内容
  134. * @param x 弹出菜单的箭头的横坐标,仅用于iPad
  135. * @param y 弹出菜单的箭头的纵坐标,仅用于iPad
  136. * @param observer 观察回调对象名称
  137. */
  138. extern void __iosShareSDKShowShareMenu (int reqID, void *platTypes, void *content, int x, int y, void *observer);
  139. /**
  140. * @brief 显示分享编辑界面
  141. *
  142. * @param reqID 流水号
  143. * @param platType 平台类型
  144. * @param content 分享内容
  145. * @param observer 观察回调对象名称
  146. */
  147. extern void __iosShareSDKShowShareView (int reqID, int platType, void *content, void *observer);
  148. /**
  149. * @brief 获取授权用户好友列表
  150. *
  151. * @param reqID 流水号
  152. * @param platType 平台类型
  153. * @param count 单页好友数量
  154. * @param page 页码/游标cusor
  155. * @param observer 观察回调对象名称
  156. */
  157. extern void __iosShareSDKGetFriendsList (int reqID, int platType, int count , int page, void *observer);
  158. /**
  159. * @brief 获取授权信息
  160. *
  161. * @param platType 平台类型
  162. * @param observer 观察回调对象名称
  163. */
  164. extern const char* __iosShareSDKGetCredential (int platType);
  165. /**
  166. * @brief 关注/添加好友
  167. *
  168. * @param platType 平台类型
  169. * @param observer 观察回调对象名称
  170. */
  171. extern void __iosShareSDKFollowFriend (int reqID, int platType, void *account, void *observer);
  172. /**
  173. * @brief 根据配置文件分享
  174. *
  175. * @param reqID 流水号
  176. * @param contentName 配置文件节点标识
  177. * @param customHashtable 自定义字段表
  178. * @param platType 平台类型
  179. * @param observer 观察回调对象名称
  180. */
  181. extern void __iosShareSDKShareWithContentName(int reqID,
  182. int platType,
  183. void *contentName,
  184. void *customHashtable,
  185. void *observer);
  186. /**
  187. * @brief 根据配置文件展示分享菜单
  188. *
  189. * @param reqID 流水号
  190. * @param contentName 配置文件节点标识
  191. * @param customHashtable 自定义字段表
  192. * @param platTypes 平台类型列表
  193. * @param x 弹出菜单的箭头的横坐标,仅用于iPad
  194. * @param y 弹出菜单的箭头的纵坐标,仅用于iPad
  195. * @param observer 观察回调对象名称
  196. */
  197. extern void __iosShareSDKShowShareMenuWithContentName(int reqID,
  198. void *contentName,
  199. void *customHashtable,
  200. void *platTypes,
  201. int x,
  202. int y,
  203. void *observer);
  204. /**
  205. * @brief 根据配置文件展示分享编辑界面
  206. *
  207. * @param reqID 流水号
  208. * @param contentName 配置文件节点标识
  209. * @param customHashtable 自定义字段表
  210. * @param platType 平台类型
  211. * @param observer 观察回调对象名称
  212. */
  213. extern void __iosShareSDKShowShareViewWithContentName(int reqID,
  214. int platType,
  215. void *contentName,
  216. void *customHashtable,
  217. void *observer);
  218. #if defined (__cplusplus)
  219. }
  220. #endif
  221. #if defined (__cplusplus)
  222. extern "C" {
  223. #endif
  224. NSMutableDictionary *__parseWithHashtable (void*configInfo)
  225. {
  226. NSString *confCs = [NSString stringWithCString:configInfo encoding:NSUTF8StringEncoding];
  227. NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithDictionary:[MOBFJson objectFromJSONString:confCs]];
  228. return dic;
  229. }
  230. SSDKPlatformType __convertContentType(NSInteger type)
  231. {
  232. switch (type)
  233. {
  234. case 0:
  235. return SSDKContentTypeAuto;
  236. case 1:
  237. return SSDKContentTypeText;
  238. case 2:
  239. return SSDKContentTypeImage;
  240. case 4:
  241. return SSDKContentTypeWebPage;
  242. case 5:
  243. return SSDKContentTypeAudio;
  244. case 6:
  245. return SSDKContentTypeVideo;
  246. case 7:
  247. return SSDKContentTypeApp;
  248. case 8:
  249. return SSDKContentTypeFile;
  250. case 9:
  251. return SSDKContentTypeImage;
  252. default:
  253. return SSDKContentTypeText;
  254. }
  255. }
  256. void __setWechatParams(NSDictionary *value,NSMutableDictionary *params,SSDKPlatformType subType)
  257. {
  258. NSString *text = nil;
  259. NSString *title = nil;
  260. NSString *url = nil;
  261. NSString *thumbImg = nil;
  262. NSString *image = nil;
  263. NSString *musicFileUrl = nil;
  264. NSString *extInfo = nil;
  265. NSData *fileData = nil;
  266. NSData *emoData = nil;
  267. NSString *sourceFileExtension = nil;
  268. NSData *sourceFileData = nil;
  269. SSDKContentType type = SSDKContentTypeText;
  270. if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
  271. {
  272. text = [value objectForKey:@"text"];
  273. }
  274. if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
  275. {
  276. title = [value objectForKey:@"title"];
  277. }
  278. if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
  279. {
  280. url = [value objectForKey:@"url"];
  281. }
  282. if ([[value objectForKey:@"thumbImageUrl"] isKindOfClass:[NSString class]])
  283. {
  284. thumbImg = [value objectForKey:@"thumbImageUrl"];
  285. }
  286. if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
  287. {
  288. image = [value objectForKey:@"imageUrl"];
  289. }
  290. if ([[value objectForKey:@"musicUrl"] isKindOfClass:[NSString class]])
  291. {
  292. musicFileUrl = [value objectForKey:@"musicUrl"];
  293. }
  294. if ([[value objectForKey:@"extInfoPath"] isKindOfClass:[NSString class]])
  295. {
  296. extInfo = [value objectForKey:@"extInfoPath"];
  297. }
  298. if ([[value objectForKey:@"filePath"] isKindOfClass:[NSString class]])
  299. {
  300. fileData = [NSData dataWithContentsOfFile:[value objectForKey:@"filePath"]];
  301. }
  302. if ([[value objectForKey:@"emotionPath"] isKindOfClass:[NSString class]])
  303. {
  304. emoData = [NSData dataWithContentsOfFile:[value objectForKey:@"emotionPath"]];
  305. }
  306. if ([[value objectForKey:@"sourceFileExtension"] isKindOfClass:[NSString class]])
  307. {
  308. sourceFileExtension = [value objectForKey:@"sourceFileExtension"];
  309. }
  310. if ([[value objectForKey:@"sourceFilePath"] isKindOfClass:[NSString class]])
  311. {
  312. sourceFileData = [NSData dataWithContentsOfFile:[value objectForKey:@"sourceFilePath"]];
  313. }
  314. if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
  315. {
  316. type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
  317. }
  318. [params SSDKSetupWeChatParamsByText:text
  319. title:title
  320. url:[NSURL URLWithString:url]
  321. thumbImage:thumbImg
  322. image:image
  323. musicFileURL:[NSURL URLWithString:musicFileUrl]
  324. extInfo:extInfo
  325. fileData:fileData
  326. emoticonData:emoData
  327. sourceFileExtension:sourceFileExtension
  328. sourceFileData:sourceFileData
  329. type:type
  330. forPlatformSubType:subType];
  331. }
  332. void __setQQParams(NSDictionary *value,NSMutableDictionary *params,SSDKPlatformType subType)
  333. {
  334. NSString *text = nil;
  335. NSString *title = nil;
  336. NSString *url = nil;
  337. NSString *thumbImg = nil;
  338. NSString *image = nil;
  339. SSDKContentType type = SSDKContentTypeText;
  340. if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
  341. {
  342. text = [value objectForKey:@"text"];
  343. }
  344. if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
  345. {
  346. title = [value objectForKey:@"title"];
  347. }
  348. if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
  349. {
  350. url = [value objectForKey:@"url"];
  351. }
  352. if ([[value objectForKey:@"thumbImageUrl"] isKindOfClass:[NSString class]])
  353. {
  354. thumbImg = [value objectForKey:@"thumbImageUrl"];
  355. }
  356. if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
  357. {
  358. image = [value objectForKey:@"imageUrl"];
  359. }
  360. if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
  361. {
  362. type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
  363. }
  364. [params SSDKSetupQQParamsByText:text
  365. title:title
  366. url:[NSURL URLWithString:url]
  367. thumbImage:thumbImg
  368. image:image
  369. type:type
  370. forPlatformSubType:subType];
  371. }
  372. void __setYixinParams(NSDictionary *value,NSMutableDictionary *params,SSDKPlatformType subType)
  373. {
  374. NSString *text = nil;
  375. NSString *title = nil;
  376. NSString *url = nil;
  377. NSString *thumbImg = nil;
  378. NSString *image = nil;
  379. NSString *musicFileURL = nil;
  380. NSString *extInfo = nil;
  381. NSString *fileDataPath = nil;
  382. NSString *comment = nil;
  383. NSString *toUserId = nil;
  384. SSDKContentType type = SSDKContentTypeText;
  385. if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
  386. {
  387. text = [value objectForKey:@"text"];
  388. }
  389. if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
  390. {
  391. title = [value objectForKey:@"title"];
  392. }
  393. if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
  394. {
  395. url = [value objectForKey:@"url"];
  396. }
  397. if ([[value objectForKey:@"thumbImageUrl"] isKindOfClass:[NSString class]])
  398. {
  399. thumbImg = [value objectForKey:@"thumbImageUrl"];
  400. }
  401. if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
  402. {
  403. image = [value objectForKey:@"imageUrl"];
  404. }
  405. if ([[value objectForKey:@"musicUrl"] isKindOfClass:[NSString class]])
  406. {
  407. musicFileURL = [value objectForKey:@"musicUrl"];
  408. }
  409. if ([[value objectForKey:@"extInfoPath"] isKindOfClass:[NSString class]])
  410. {
  411. extInfo = [value objectForKey:@"extInfoPath"];
  412. }
  413. if ([[value objectForKey:@"filePath"] isKindOfClass:[NSString class]])
  414. {
  415. fileDataPath = [value objectForKey:@"filePath"];
  416. }
  417. if ([[value objectForKey:@"comment"] isKindOfClass:[NSString class]])
  418. {
  419. comment = [value objectForKey:@"comment"];
  420. }
  421. if ([[value objectForKey:@"toUserID"] isKindOfClass:[NSString class]])
  422. {
  423. toUserId = [value objectForKey:@"toUserID"];
  424. }
  425. if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
  426. {
  427. type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
  428. }
  429. [params SSDKSetupYiXinParamsByText:text
  430. title:title
  431. url:[NSURL URLWithString:url]
  432. thumbImage:thumbImg
  433. image:image
  434. musicFileURL:[NSURL URLWithString:musicFileURL]
  435. extInfo:extInfo
  436. fileData:fileDataPath
  437. comment:comment
  438. toUserId:toUserId
  439. type:type
  440. forPlatformSubType:subType];
  441. }
  442. void __setKakaoParams(NSDictionary *value,NSMutableDictionary *params,SSDKPlatformType subType)
  443. {
  444. NSString *text = nil;
  445. NSMutableArray *images = [NSMutableArray array];
  446. NSString *title = nil;
  447. NSString *url = nil;
  448. NSString *permission = nil;
  449. BOOL enableShare;
  450. CGFloat imageWidth;
  451. CGFloat imageHeight;
  452. NSString *appButtonTitle = nil;
  453. NSDictionary *androidExecParam = nil;
  454. NSString *androidMarkParam = nil;
  455. NSDictionary *iphoneExecParams = nil;
  456. NSString *iphoneMarkParam = nil;
  457. NSDictionary *ipadExecParams = nil;
  458. NSString *ipadMarkParam = nil;
  459. SSDKContentType type = SSDKContentTypeText;
  460. if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
  461. {
  462. text = [value objectForKey:@"text"];
  463. }
  464. if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
  465. {
  466. NSString *imgPath = [value objectForKey:@"imageUrl"];
  467. SSDKImage *image = nil;
  468. if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
  469. options:MOBFRegexOptionsNoOptions
  470. inRange:NSMakeRange(0, imgPath.length)
  471. withString:imgPath])
  472. {
  473. image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:imgPath]];
  474. }
  475. else
  476. {
  477. UIImage *localImg = [UIImage imageWithContentsOfFile:imgPath];
  478. image = [[SSDKImage alloc] initWithImage:localImg
  479. format:SSDKImageFormatJpeg
  480. settings:nil];
  481. }
  482. if (image)
  483. {
  484. [images addObject:imgPath];
  485. }
  486. else
  487. {
  488. NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
  489. }
  490. }
  491. else if([[value objectForKey:@"imageUrl"] isKindOfClass:[NSArray class]])
  492. {
  493. NSArray *paths = [value objectForKey:@"imageUrl"];
  494. for (NSString *path in paths)
  495. {
  496. SSDKImage *image = nil;
  497. if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
  498. options:MOBFRegexOptionsNoOptions
  499. inRange:NSMakeRange(0, path.length)
  500. withString:path])
  501. {
  502. image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:path]];
  503. }
  504. else
  505. {
  506. UIImage *localImg = [UIImage imageWithContentsOfFile:path];
  507. image = [[SSDKImage alloc] initWithImage:localImg
  508. format:SSDKImageFormatJpeg
  509. settings:nil];
  510. }
  511. if (image)
  512. {
  513. [images addObject:path];
  514. }
  515. else
  516. {
  517. NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
  518. }
  519. }
  520. }
  521. if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
  522. {
  523. title = [value objectForKey:@"title"];
  524. }
  525. if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
  526. {
  527. url = [value objectForKey:@"url"];
  528. }
  529. if ([[value objectForKey:@"permission"] isKindOfClass:[NSString class]])
  530. {
  531. permission = [value objectForKey:@"permission"];
  532. }
  533. if ([[value objectForKey:@"enableShare"] boolValue])
  534. {
  535. enableShare = YES;
  536. }
  537. if ([[value objectForKey:@"imageWidth"] isKindOfClass:[NSNumber class]])
  538. {
  539. imageWidth = [[value objectForKey:@"imageWidth"] floatValue];
  540. }
  541. if ([[value objectForKey:@"imageHeight"] isKindOfClass:[NSNumber class]])
  542. {
  543. imageHeight = [[value objectForKey:@"imageHeight"] floatValue];
  544. }
  545. if ([[value objectForKey:@"appButtonTitle"] isKindOfClass:[NSString class]])
  546. {
  547. appButtonTitle = [value objectForKey:@"appButtonTitle"];
  548. }
  549. if ([[value objectForKey:@"androidExecParam"] isKindOfClass:[NSDictionary class]])
  550. {
  551. androidExecParam = [value objectForKey:@"androidExecParam"];
  552. }
  553. if ([[value objectForKey:@"androidMarkParam"] isKindOfClass:[NSString class]])
  554. {
  555. androidMarkParam = [value objectForKey:@"androidMarkParam"];
  556. }
  557. if ([[value objectForKey:@"iphoneExecParam"] isKindOfClass:[NSDictionary class]])
  558. {
  559. iphoneExecParams = [value objectForKey:@"iphoneExecParam"];
  560. }
  561. if ([[value objectForKey:@"iphoneMarkParam"] isKindOfClass:[NSString class]])
  562. {
  563. iphoneMarkParam = [value objectForKey:@"iphoneMarkParam"];
  564. }
  565. if ([[value objectForKey:@"ipadExecParam"] isKindOfClass:[NSDictionary class]])
  566. {
  567. ipadExecParams = [value objectForKey:@"ipadExecParam"];
  568. }
  569. if ([[value objectForKey:@"ipadMarkParam"] isKindOfClass:[NSString class]])
  570. {
  571. ipadMarkParam = [value objectForKey:@"ipadMarkParam"];
  572. }
  573. if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
  574. {
  575. type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
  576. }
  577. [params SSDKSetupKaKaoParamsByText:text
  578. images:images
  579. title:title
  580. url:[NSURL URLWithString:url]
  581. permission:permission
  582. enableShare:enableShare
  583. imageSize:CGSizeMake(imageWidth, imageHeight)
  584. appButtonTitle:appButtonTitle
  585. androidExecParam:androidExecParam
  586. androidMarkParam:androidMarkParam
  587. iphoneExecParams:iphoneExecParams
  588. iphoneMarkParam:iphoneMarkParam
  589. ipadExecParams:ipadExecParams
  590. ipadMarkParam:ipadMarkParam
  591. type:type
  592. forPlatformSubType:subType];
  593. }
  594. NSMutableDictionary *__getShareParamsWithString(NSString *dataStr)
  595. {
  596. NSMutableDictionary *params = [NSMutableDictionary dictionary];
  597. NSMutableArray *imageArray = [NSMutableArray array];
  598. NSString *text = nil;
  599. NSString *title = nil;
  600. NSString *url = nil;
  601. SSDKContentType type = SSDKContentTypeText;
  602. NSDictionary *shareParamsDic = [MOBFJson objectFromJSONString:dataStr];
  603. if (shareParamsDic)
  604. {
  605. if ([[shareParamsDic objectForKey:@"text"] isKindOfClass:[NSString class]])
  606. {
  607. text = [shareParamsDic objectForKey:@"text"];
  608. }
  609. id img = [shareParamsDic objectForKey:@"imageUrl"];
  610. if ([img isKindOfClass:[NSString class]])
  611. {
  612. NSString *imgPath = img;
  613. SSDKImage *image = nil;
  614. if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
  615. options:MOBFRegexOptionsNoOptions
  616. inRange:NSMakeRange(0, imgPath.length)
  617. withString:imgPath])
  618. {
  619. image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:imgPath]];
  620. }
  621. else
  622. {
  623. UIImage *localImg = [UIImage imageWithContentsOfFile:imgPath];
  624. image = [[SSDKImage alloc] initWithImage:localImg
  625. format:SSDKImageFormatJpeg
  626. settings:nil];
  627. }
  628. if (image)
  629. {
  630. [imageArray addObject:imgPath];
  631. }
  632. else
  633. {
  634. NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
  635. }
  636. }
  637. else if([img isKindOfClass:[NSArray class]])
  638. {
  639. NSArray *paths = [img copy];
  640. for (NSString *path in paths)
  641. {
  642. SSDKImage *image = nil;
  643. if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
  644. options:MOBFRegexOptionsNoOptions
  645. inRange:NSMakeRange(0, path.length)
  646. withString:path])
  647. {
  648. image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:path]];
  649. }
  650. else
  651. {
  652. UIImage *localImg = [UIImage imageWithContentsOfFile:path];
  653. image = [[SSDKImage alloc] initWithImage:localImg
  654. format:SSDKImageFormatJpeg
  655. settings:nil];
  656. }
  657. if (image)
  658. {
  659. [imageArray addObject:path];
  660. }
  661. else
  662. {
  663. NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
  664. }
  665. }
  666. }
  667. if ([[shareParamsDic objectForKey:@"title"] isKindOfClass:[NSString class]])
  668. {
  669. title = [shareParamsDic objectForKey:@"title"];
  670. }
  671. if ([[shareParamsDic objectForKey:@"url"] isKindOfClass:[NSString class]])
  672. {
  673. url = [shareParamsDic objectForKey:@"url"];
  674. }
  675. if ([[shareParamsDic objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
  676. {
  677. type = __convertContentType([[shareParamsDic objectForKey:@"shareType"] integerValue]);
  678. }
  679. if ([[shareParamsDic objectForKey:@"clientShare"] isKindOfClass:[NSNumber class]])
  680. {
  681. NSInteger enable = [[shareParamsDic objectForKey:@"clientShare"] integerValue];
  682. if (enable > 0)
  683. {
  684. [params SSDKEnableUseClientShare];
  685. }
  686. }
  687. if ([[shareParamsDic objectForKey:@"advancedShare"] isKindOfClass:[NSNumber class]])
  688. {
  689. NSInteger enable = [[shareParamsDic objectForKey:@"advancedShare"] integerValue];
  690. if (enable > 0)
  691. {
  692. [params SSDKEnableAdvancedInterfaceShare];
  693. }
  694. }
  695. [params SSDKSetupShareParamsByText:text
  696. images:imageArray
  697. url:[NSURL URLWithString:url]
  698. title:title
  699. type:type];
  700. NSDictionary *customizeShareParams = [shareParamsDic objectForKey:@"customizeShareParams"];
  701. if (customizeShareParams && [[customizeShareParams allKeys] count] > 0)
  702. {
  703. //新浪微博
  704. id value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeSinaWeibo]]];
  705. if ([value isKindOfClass:[NSDictionary class]])
  706. {
  707. NSString *text = nil;
  708. NSString *title = nil;
  709. NSString *image = nil;
  710. NSString *url = nil;
  711. double lat = 0;
  712. double lng = 0;
  713. NSString *objID = nil;
  714. SSDKContentType type = SSDKContentTypeWebPage;
  715. if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
  716. {
  717. text = [value objectForKey:@"text"];
  718. }
  719. if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
  720. {
  721. title = [value objectForKey:@"title"];
  722. }
  723. if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
  724. {
  725. image = [value objectForKey:@"imageUrl"];
  726. }
  727. if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
  728. {
  729. url = [value objectForKey:@"url"];
  730. }
  731. if ([[value objectForKey:@"latitude"] isKindOfClass:[NSString class]])
  732. {
  733. lat = [[value objectForKey:@"latitude"] doubleValue];
  734. }
  735. if ([[value objectForKey:@"longitude"] isKindOfClass:[NSString class]])
  736. {
  737. lng = [[value objectForKey:@"longitude"] doubleValue];
  738. }
  739. if ([[value objectForKey:@"objectID"] isKindOfClass:[NSString class]])
  740. {
  741. objID = [value objectForKey:@"objectID"];
  742. }
  743. if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
  744. {
  745. type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
  746. }
  747. if ([[value objectForKey:@"clientShare"] isKindOfClass:[NSNumber class]])
  748. {
  749. NSInteger enable = [[value objectForKey:@"clientShare"] integerValue];
  750. if (enable > 0)
  751. {
  752. [params SSDKEnableUseClientShare];
  753. }
  754. }
  755. if ([[value objectForKey:@"advancedShare"] isKindOfClass:[NSNumber class]])
  756. {
  757. NSInteger enable = [[value objectForKey:@"advancedShare"] integerValue];
  758. if (enable > 0)
  759. {
  760. [params SSDKEnableAdvancedInterfaceShare];
  761. }
  762. }
  763. [params SSDKSetupSinaWeiboShareParamsByText:text
  764. title:title
  765. image:image
  766. url:[NSURL URLWithString:url]
  767. latitude:lat
  768. longitude:lng
  769. objectID:objID
  770. type:type];
  771. }
  772. //腾讯微博
  773. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeTencentWeibo]]];
  774. if ([value isKindOfClass:[NSDictionary class]])
  775. {
  776. NSString *text = nil;
  777. NSMutableArray *images = [NSMutableArray array];
  778. double lat;
  779. double lng;
  780. SSDKContentType type = SSDKContentTypeImage;
  781. if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
  782. {
  783. text = [value objectForKey:@"text"];
  784. }
  785. if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
  786. {
  787. NSString *imgPath = [value objectForKey:@"imageUrl"];
  788. SSDKImage *image = nil;
  789. if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
  790. options:MOBFRegexOptionsNoOptions
  791. inRange:NSMakeRange(0, imgPath.length)
  792. withString:imgPath])
  793. {
  794. image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:imgPath]];
  795. }
  796. else
  797. {
  798. UIImage *localImg = [UIImage imageWithContentsOfFile:imgPath];
  799. image = [[SSDKImage alloc]initWithImage:localImg
  800. format:SSDKImageFormatJpeg
  801. settings:nil];
  802. }
  803. if (image)
  804. {
  805. [images addObject:imgPath];
  806. }
  807. else
  808. {
  809. NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
  810. }
  811. }
  812. else if([[value objectForKey:@"imageUrl"] isKindOfClass:[NSArray class]])
  813. {
  814. NSArray *paths = [value objectForKey:@"imageUrl"];
  815. for (NSString *path in paths)
  816. {
  817. SSDKImage *image = nil;
  818. if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
  819. options:MOBFRegexOptionsNoOptions
  820. inRange:NSMakeRange(0, path.length)
  821. withString:path])
  822. {
  823. image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:path]];
  824. }
  825. else
  826. {
  827. UIImage *localImg = [UIImage imageWithContentsOfFile:path];
  828. image = [[SSDKImage alloc] initWithImage:localImg
  829. format:SSDKImageFormatJpeg
  830. settings:nil];
  831. }
  832. if (image)
  833. {
  834. [images addObject:path];
  835. }
  836. else
  837. {
  838. NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
  839. }
  840. }
  841. }
  842. if ([[value objectForKey:@"latitude"] isKindOfClass:[NSNumber class]])
  843. {
  844. lat = [[value objectForKey:@"latitude"] doubleValue];
  845. }
  846. if ([[value objectForKey:@"longitude"] isKindOfClass:[NSNumber class]])
  847. {
  848. lng = [[value objectForKey:@"longitude"] doubleValue];
  849. }
  850. if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
  851. {
  852. type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
  853. }
  854. [params SSDKSetupTencentWeiboShareParamsByText:text
  855. images:images
  856. latitude:lat
  857. longitude:lng
  858. type:type];
  859. }
  860. //豆瓣
  861. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeDouBan]]];
  862. if ([value isKindOfClass:[NSDictionary class]])
  863. {
  864. NSString *text = nil;
  865. NSString *image = nil;
  866. NSString *title = nil;
  867. NSString *url = nil;
  868. NSString *urlDesc = nil;
  869. SSDKContentType type = SSDKContentTypeText;
  870. if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
  871. {
  872. text = [value objectForKey:@"text"];
  873. }
  874. if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
  875. {
  876. image = [value objectForKey:@"imageUrl"];
  877. }
  878. if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
  879. {
  880. title = [value objectForKey:@"title"];
  881. }
  882. if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
  883. {
  884. url = [value objectForKey:@"url"];
  885. }
  886. if ([[value objectForKey:@"urlDescription"] isKindOfClass:[NSString class]])
  887. {
  888. urlDesc = [value objectForKey:@"urlDescription"];
  889. }
  890. if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
  891. {
  892. type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
  893. }
  894. [params SSDKSetupDouBanParamsByText:text
  895. image:image
  896. title:title
  897. url:[NSURL URLWithString:url]
  898. urlDesc:urlDesc
  899. type:type];
  900. }
  901. //QQ系列
  902. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformSubTypeQQFriend]]];
  903. if ([value isKindOfClass:[NSDictionary class]])
  904. {
  905. __setQQParams(value,params,SSDKPlatformSubTypeQQFriend);
  906. }
  907. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformSubTypeQZone]]];
  908. if ([value isKindOfClass:[NSDictionary class]])
  909. {
  910. __setQQParams(value,params,SSDKPlatformSubTypeQZone);
  911. }
  912. //微信系列
  913. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformSubTypeWechatSession]]];
  914. if ([value isKindOfClass:[NSDictionary class]])
  915. {
  916. __setWechatParams(value,params,SSDKPlatformSubTypeWechatSession);
  917. }
  918. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformSubTypeWechatTimeline]]];
  919. if ([value isKindOfClass:[NSDictionary class]])
  920. {
  921. __setWechatParams(value,params,SSDKPlatformSubTypeWechatTimeline);
  922. }
  923. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformSubTypeWechatFav]]];
  924. if ([value isKindOfClass:[NSDictionary class]])
  925. {
  926. __setWechatParams(value,params,SSDKPlatformSubTypeWechatFav);
  927. }
  928. //人人网
  929. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeRenren]]];
  930. if ([value isKindOfClass:[NSDictionary class]])
  931. {
  932. NSString *text = nil;
  933. NSString *image = nil;
  934. NSString *url = nil;
  935. NSString *albumId = nil;
  936. SSDKContentType type = SSDKContentTypeImage;
  937. if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
  938. {
  939. text = [value objectForKey:@"text"];
  940. }
  941. if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
  942. {
  943. image = [value objectForKey:@"imageUrl"];
  944. }
  945. if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
  946. {
  947. url = [value objectForKey:@"url"];
  948. }
  949. if ([[value objectForKey:@"albumID"] isKindOfClass:[NSString class]])
  950. {
  951. albumId = [value objectForKey:@"albumID"];
  952. }
  953. if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
  954. {
  955. type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
  956. }
  957. [params SSDKSetupRenRenParamsByText:text
  958. image:image
  959. url:[NSURL URLWithString:url]
  960. albumId:albumId
  961. type:type];
  962. }
  963. //开心网
  964. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeKaixin]]];
  965. if ([value isKindOfClass:[NSDictionary class]])
  966. {
  967. NSString *text = nil;
  968. NSString *image = nil;
  969. SSDKContentType type = SSDKContentTypeText;
  970. if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
  971. {
  972. text = [value objectForKey:@"text"];
  973. }
  974. if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
  975. {
  976. image = [value objectForKey:@"imageUrl"];
  977. }
  978. if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
  979. {
  980. type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
  981. }
  982. [params SSDKSetupKaiXinParamsByText:text
  983. image:image
  984. type:type];
  985. }
  986. //Facebook
  987. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeFacebook]]];
  988. if ([value isKindOfClass:[NSDictionary class]])
  989. {
  990. NSString *text = nil;
  991. NSString *image = nil;
  992. NSString *title = nil;
  993. NSString *urlDesc = nil;
  994. NSString *attachmentPath = nil;
  995. SSDKContentType type = SSDKContentTypeText;
  996. if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
  997. {
  998. text = [value objectForKey:@"text"];
  999. }
  1000. if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
  1001. {
  1002. image = [value objectForKey:@"imageUrl"];
  1003. }
  1004. if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
  1005. {
  1006. url = [value objectForKey:@"url"];
  1007. }
  1008. if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
  1009. {
  1010. title = [value objectForKey:@"title"];
  1011. }
  1012. if ([[value objectForKey:@"urlDescription"] isKindOfClass:[NSString class]])
  1013. {
  1014. urlDesc = [value objectForKey:@"urlDescription"];
  1015. }
  1016. if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
  1017. {
  1018. type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
  1019. }
  1020. if ([[value objectForKey:@"attachmentPath"] isKindOfClass:[NSString class]])
  1021. {
  1022. attachmentPath = [value objectForKey:@"attachmentPath"];
  1023. }
  1024. if ([[value objectForKey:@"clientShare"] isKindOfClass:[NSNumber class]])
  1025. {
  1026. NSInteger enable = [[value objectForKey:@"clientShare"] integerValue];
  1027. if (enable > 0)
  1028. {
  1029. [params SSDKEnableUseClientShare];
  1030. }
  1031. }
  1032. if ([[value objectForKey:@"advancedShare"] isKindOfClass:[NSNumber class]])
  1033. {
  1034. NSInteger enable = [[value objectForKey:@"advancedShare"] integerValue];
  1035. if (enable > 0)
  1036. {
  1037. [params SSDKEnableAdvancedInterfaceShare];
  1038. }
  1039. }
  1040. [params SSDKSetupFacebookParamsByText:text
  1041. image:image
  1042. url:[NSURL URLWithString:url]
  1043. urlTitle:title
  1044. urlName:urlDesc
  1045. attachementUrl:[NSURL URLWithString:attachmentPath]
  1046. type:type];
  1047. }
  1048. //Twitter
  1049. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeTwitter]]];
  1050. if ([value isKindOfClass:[NSDictionary class]])
  1051. {
  1052. NSString *text = nil;
  1053. NSMutableArray *images = [NSMutableArray array];
  1054. double lat;
  1055. double lng;
  1056. SSDKContentType type = SSDKContentTypeText;
  1057. if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
  1058. {
  1059. text = [value objectForKey:@"text"];
  1060. }
  1061. if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
  1062. {
  1063. NSString *imgPath = [value objectForKey:@"imageUrl"];
  1064. SSDKImage *image = nil;
  1065. if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
  1066. options:MOBFRegexOptionsNoOptions
  1067. inRange:NSMakeRange(0, imgPath.length)
  1068. withString:imgPath])
  1069. {
  1070. image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:imgPath]];
  1071. }
  1072. else
  1073. {
  1074. UIImage *localImg = [UIImage imageWithContentsOfFile:imgPath];
  1075. image = [[SSDKImage alloc] initWithImage:localImg
  1076. format:SSDKImageFormatJpeg
  1077. settings:nil];
  1078. }
  1079. if (image)
  1080. {
  1081. [images addObject:imgPath];
  1082. }
  1083. else
  1084. {
  1085. NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
  1086. }
  1087. }
  1088. else if([[value objectForKey:@"imageUrl"] isKindOfClass:[NSArray class]])
  1089. {
  1090. NSArray *paths = [value objectForKey:@"imageUrl"];
  1091. for (NSString *path in paths)
  1092. {
  1093. SSDKImage *image = nil;
  1094. if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
  1095. options:MOBFRegexOptionsNoOptions
  1096. inRange:NSMakeRange(0, path.length)
  1097. withString:path])
  1098. {
  1099. image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:path]];
  1100. }
  1101. else
  1102. {
  1103. UIImage *localImg = [UIImage imageWithContentsOfFile:path];
  1104. image = [[SSDKImage alloc] initWithImage:localImg
  1105. format:SSDKImageFormatJpeg
  1106. settings:nil];
  1107. }
  1108. if (image)
  1109. {
  1110. [images addObject:path];
  1111. }
  1112. else
  1113. {
  1114. NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
  1115. }
  1116. }
  1117. }
  1118. if ([[value objectForKey:@"latitude"] isKindOfClass:[NSNumber class]])
  1119. {
  1120. lat = [[value objectForKey:@"latitude"] doubleValue];
  1121. }
  1122. if ([[value objectForKey:@"longitude"] isKindOfClass:[NSNumber class]])
  1123. {
  1124. lng = [[value objectForKey:@"longitude"] doubleValue];
  1125. }
  1126. if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
  1127. {
  1128. type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
  1129. }
  1130. [params SSDKSetupTwitterParamsByText:text
  1131. images:images
  1132. latitude:lat
  1133. longitude:lng
  1134. type:type];
  1135. }
  1136. //YinXiang
  1137. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeYinXiang]]];
  1138. if ([value isKindOfClass:[NSDictionary class]])
  1139. {
  1140. NSString *text = nil;
  1141. NSString *title = nil;
  1142. NSMutableArray *images = [NSMutableArray array];
  1143. NSMutableArray *tags = [NSMutableArray array];
  1144. NSString *notebook = nil;
  1145. if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
  1146. {
  1147. text = [value objectForKey:@"text"];
  1148. }
  1149. if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
  1150. {
  1151. title = [value objectForKey:@"title"];
  1152. }
  1153. if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
  1154. {
  1155. NSString *imgPath = [value objectForKey:@"imageUrl"];
  1156. SSDKImage *image = nil;
  1157. if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
  1158. options:MOBFRegexOptionsNoOptions
  1159. inRange:NSMakeRange(0, imgPath.length)
  1160. withString:imgPath])
  1161. {
  1162. image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:imgPath]];
  1163. }
  1164. else
  1165. {
  1166. UIImage *localImg = [UIImage imageWithContentsOfFile:imgPath];
  1167. image = [[SSDKImage alloc] initWithImage:localImg
  1168. format:SSDKImageFormatJpeg
  1169. settings:nil];
  1170. }
  1171. if (image)
  1172. {
  1173. [images addObject:imgPath];
  1174. }
  1175. else
  1176. {
  1177. NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
  1178. }
  1179. }
  1180. else if([[value objectForKey:@"imageUrl"] isKindOfClass:[NSArray class]])
  1181. {
  1182. NSArray *paths = [value objectForKey:@"imageUrl"];
  1183. for (NSString *path in paths)
  1184. {
  1185. SSDKImage *image = nil;
  1186. if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
  1187. options:MOBFRegexOptionsNoOptions
  1188. inRange:NSMakeRange(0, path.length)
  1189. withString:path])
  1190. {
  1191. image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:path]];
  1192. }
  1193. else
  1194. {
  1195. UIImage *localImg = [UIImage imageWithContentsOfFile:path];
  1196. image = [[SSDKImage alloc] initWithImage:localImg
  1197. format:SSDKImageFormatJpeg
  1198. settings:nil];
  1199. }
  1200. if (image)
  1201. {
  1202. [images addObject:path];
  1203. }
  1204. else
  1205. {
  1206. NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
  1207. }
  1208. }
  1209. }
  1210. if ([[value objectForKey:@"notebook"] isKindOfClass:[NSString class]])
  1211. {
  1212. notebook = [value objectForKey:@"notebook"];
  1213. }
  1214. id tagValue = [value objectForKey:@"tags"];
  1215. if ([tagValue isKindOfClass:[NSString class]])
  1216. {
  1217. [tags addObject:tagValue];
  1218. }
  1219. else if ([tagValue isKindOfClass:[NSArray class]])
  1220. {
  1221. tags = [tagValue mutableCopy];
  1222. }
  1223. [params SSDKSetupEvernoteParamsByText:text
  1224. images:images
  1225. title:title
  1226. notebook:notebook
  1227. tags:tags
  1228. platformType:SSDKPlatformTypeYinXiang];
  1229. }
  1230. //GooglePlus
  1231. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeGooglePlus]]];
  1232. if ([value isKindOfClass:[NSDictionary class]])
  1233. {
  1234. NSString *text = nil;
  1235. NSString *url = nil;
  1236. SSDKContentType type = SSDKContentTypeText;
  1237. if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
  1238. {
  1239. text = [value objectForKey:@"text"];
  1240. }
  1241. if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
  1242. {
  1243. url = [value objectForKey:@"url"];
  1244. }
  1245. if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
  1246. {
  1247. type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
  1248. }
  1249. [params SSDKSetupGooglePlusParamsByText:text
  1250. url:[NSURL URLWithString:url]
  1251. type:type];
  1252. }
  1253. //Instagram
  1254. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeInstagram]]];
  1255. if ([value isKindOfClass:[NSDictionary class]])
  1256. {
  1257. NSString *image = nil;
  1258. CGFloat menuX;
  1259. CGFloat menuY;
  1260. if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
  1261. {
  1262. image = [value objectForKey:@"imageUrl"];
  1263. }
  1264. if ([[value objectForKey:@"menuX"] isKindOfClass:[NSString class]])
  1265. {
  1266. menuX = [[value objectForKey:@"menuX"] floatValue];
  1267. }
  1268. if ([[value objectForKey:@"menuY"] isKindOfClass:[NSString class]])
  1269. {
  1270. menuX = [[value objectForKey:@"menuY"] floatValue];
  1271. }
  1272. CGPoint point = CGPointMake(menuX, menuY);
  1273. [params SSDKSetupInstagramByImage:image menuDisplayPoint:point];
  1274. }
  1275. //LinkedIn
  1276. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeLinkedIn]]];
  1277. if ([value isKindOfClass:[NSDictionary class]])
  1278. {
  1279. NSString *text = nil;
  1280. NSString *image = nil;
  1281. NSString *title = nil;
  1282. NSString *url = nil;
  1283. NSString *urlDesc = nil;
  1284. NSString *visibility = nil;
  1285. SSDKContentType type = SSDKContentTypeText;
  1286. if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
  1287. {
  1288. text = [value objectForKey:@"text"];
  1289. }
  1290. if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
  1291. {
  1292. image = [value objectForKey:@"imageUrl"];
  1293. }
  1294. if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
  1295. {
  1296. title = [value objectForKey:@"title"];
  1297. }
  1298. if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
  1299. {
  1300. url = [value objectForKey:@"url"];
  1301. }
  1302. if ([[value objectForKey:@"urlDescription"] isKindOfClass:[NSString class]])
  1303. {
  1304. urlDesc = [value objectForKey:@"urlDescription"];
  1305. }
  1306. if ([[value objectForKey:@"visibility"] isKindOfClass:[NSString class]])
  1307. {
  1308. visibility = [value objectForKey:@"visibility"];
  1309. }
  1310. if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
  1311. {
  1312. type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
  1313. }
  1314. [params SSDKSetupLinkedInParamsByText:text
  1315. image:image
  1316. url:[NSURL URLWithString:url]
  1317. title:title
  1318. urlDesc:urlDesc
  1319. visibility:visibility
  1320. type:type];
  1321. }
  1322. //Tumblr
  1323. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeTumblr]]];
  1324. if ([value isKindOfClass:[NSDictionary class]])
  1325. {
  1326. NSString *text = nil;
  1327. NSString *image = nil;
  1328. NSString *title = nil;
  1329. NSString *url = nil;
  1330. NSString *blogName = nil;
  1331. SSDKContentType type = SSDKContentTypeText;
  1332. if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
  1333. {
  1334. text = [value objectForKey:@"text"];
  1335. }
  1336. if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
  1337. {
  1338. image = [value objectForKey:@"imageUrl"];
  1339. }
  1340. if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
  1341. {
  1342. title = [value objectForKey:@"title"];
  1343. }
  1344. if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
  1345. {
  1346. url = [value objectForKey:@"url"];
  1347. }
  1348. if ([[value objectForKey:@"blogName"] isKindOfClass:[NSString class]])
  1349. {
  1350. blogName = [value objectForKey:@"blogName"];
  1351. }
  1352. if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
  1353. {
  1354. type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
  1355. }
  1356. [params SSDKSetupTumblrParamsByText:text
  1357. image:image
  1358. url:[NSURL URLWithString:url]
  1359. title:title
  1360. blogName:blogName
  1361. type:type];
  1362. }
  1363. //Mail
  1364. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeMail]]];
  1365. if ([value isKindOfClass:[NSDictionary class]])
  1366. {
  1367. NSString *text = nil;
  1368. NSString *title = nil;
  1369. NSMutableArray *images = [NSMutableArray array];
  1370. NSMutableArray *attachments = [NSMutableArray array];
  1371. NSMutableArray *recipients = [NSMutableArray array];
  1372. NSMutableArray *ccRecipients = [NSMutableArray array];
  1373. NSMutableArray *bccRecipients = [NSMutableArray array];
  1374. SSDKContentType type = SSDKContentTypeText;
  1375. if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
  1376. {
  1377. text = [value objectForKey:@"text"];
  1378. }
  1379. if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
  1380. {
  1381. title = [value objectForKey:@"title"];
  1382. }
  1383. if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
  1384. {
  1385. NSString *imgPath = [value objectForKey:@"imageUrl"];
  1386. SSDKImage *image = nil;
  1387. if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
  1388. options:MOBFRegexOptionsNoOptions
  1389. inRange:NSMakeRange(0, imgPath.length)
  1390. withString:imgPath])
  1391. {
  1392. image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:imgPath]];
  1393. }
  1394. else
  1395. {
  1396. UIImage *localImg = [UIImage imageWithContentsOfFile:imgPath];
  1397. image = [[SSDKImage alloc] initWithImage:localImg
  1398. format:SSDKImageFormatJpeg
  1399. settings:nil];
  1400. }
  1401. if (image)
  1402. {
  1403. [images addObject:imgPath];
  1404. }
  1405. else
  1406. {
  1407. NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
  1408. }
  1409. }
  1410. else if([[value objectForKey:@"imageUrl"] isKindOfClass:[NSArray class]])
  1411. {
  1412. NSArray *paths = [value objectForKey:@"imageUrl"];
  1413. for (NSString *path in paths)
  1414. {
  1415. SSDKImage *image = nil;
  1416. if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
  1417. options:MOBFRegexOptionsNoOptions
  1418. inRange:NSMakeRange(0, path.length)
  1419. withString:path])
  1420. {
  1421. image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:path]];
  1422. }
  1423. else
  1424. {
  1425. UIImage *localImg = [UIImage imageWithContentsOfFile:path];
  1426. image = [[SSDKImage alloc] initWithImage:localImg
  1427. format:SSDKImageFormatJpeg
  1428. settings:nil];
  1429. }
  1430. if (image)
  1431. {
  1432. [images addObject:path];
  1433. }
  1434. else
  1435. {
  1436. NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
  1437. }
  1438. }
  1439. }
  1440. if ([[value objectForKey:@"attachmentPath"] isKindOfClass:[NSString class]])
  1441. {
  1442. NSData *attachementsData = [NSData dataWithContentsOfFile:[value objectForKey:@"attachmentPath"]];
  1443. [attachments addObject:attachementsData];
  1444. }
  1445. else if ([[value objectForKey:@"attachmentPath"] isKindOfClass:[NSArray class]])
  1446. {
  1447. NSArray *paths = [value objectForKey:@"attachmentPath"];
  1448. for (NSString *path in paths)
  1449. {
  1450. NSData *attachementsData = [NSData dataWithContentsOfFile:path];
  1451. [attachments addObject:attachementsData];
  1452. }
  1453. }
  1454. if ([[value objectForKey:@"recipients"] isKindOfClass:[NSString class]])
  1455. {
  1456. [recipients addObject:[value objectForKey:@"recipients"]];
  1457. }
  1458. else if ([[value objectForKey:@"recipients"] isKindOfClass:[NSArray class]])
  1459. {
  1460. NSArray *recipientsArray = [value objectForKey:@"recipients"];
  1461. for (NSString *recipient in recipientsArray)
  1462. {
  1463. [recipients addObject:recipient];
  1464. }
  1465. }
  1466. if ([[value objectForKey:@"ccRecipients"] isKindOfClass:[NSString class]])
  1467. {
  1468. [ccRecipients addObject:[value objectForKey:@"ccRecipients"]];
  1469. }
  1470. else if ([[value objectForKey:@"ccRecipients"] isKindOfClass:[NSArray class]])
  1471. {
  1472. NSArray *recipientsArray = [value objectForKey:@"ccRecipients"];
  1473. for (NSString *recipient in recipientsArray)
  1474. {
  1475. [ccRecipients addObject:recipient];
  1476. }
  1477. }
  1478. if ([[value objectForKey:@"bccRecipients"] isKindOfClass:[NSString class]])
  1479. {
  1480. [bccRecipients addObject:[value objectForKey:@"bccRecipients"]];
  1481. }
  1482. else if ([[value objectForKey:@"bccRecipients"] isKindOfClass:[NSArray class]])
  1483. {
  1484. NSArray *recipientsArray = [value objectForKey:@"bccRecipients"];
  1485. for (NSString *recipient in recipientsArray)
  1486. {
  1487. [bccRecipients addObject:recipient];
  1488. }
  1489. }
  1490. if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
  1491. {
  1492. type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
  1493. }
  1494. [params SSDKSetupMailParamsByText:text
  1495. title:title
  1496. images:images
  1497. attachments:attachments
  1498. recipients:recipients
  1499. ccRecipients:ccRecipients
  1500. bccRecipients:bccRecipients
  1501. type:type];
  1502. }
  1503. //SMS
  1504. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeSMS]]];
  1505. if ([value isKindOfClass:[NSDictionary class]])
  1506. {
  1507. NSString *text = nil;
  1508. NSString *title = nil;
  1509. NSMutableArray *images = [NSMutableArray array];
  1510. NSMutableArray *attachments = [NSMutableArray array];
  1511. NSMutableArray *recipients = [NSMutableArray array];
  1512. SSDKContentType type = SSDKContentTypeText;
  1513. if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
  1514. {
  1515. text = [value objectForKey:@"text"];
  1516. }
  1517. if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
  1518. {
  1519. title = [value objectForKey:@"title"];
  1520. }
  1521. if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
  1522. {
  1523. NSString *imgPath = [value objectForKey:@"imageUrl"];
  1524. SSDKImage *image = nil;
  1525. if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
  1526. options:MOBFRegexOptionsNoOptions
  1527. inRange:NSMakeRange(0, imgPath.length)
  1528. withString:imgPath])
  1529. {
  1530. image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:imgPath]];
  1531. }
  1532. else
  1533. {
  1534. UIImage *localImg = [UIImage imageWithContentsOfFile:imgPath];
  1535. image = [[SSDKImage alloc] initWithImage:localImg
  1536. format:SSDKImageFormatJpeg
  1537. settings:nil];
  1538. }
  1539. if (image)
  1540. {
  1541. [images addObject:imgPath];
  1542. }
  1543. else
  1544. {
  1545. NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
  1546. }
  1547. }
  1548. else if([[value objectForKey:@"imageUrl"] isKindOfClass:[NSArray class]])
  1549. {
  1550. NSArray *paths = [value objectForKey:@"imageUrl"];
  1551. for (NSString *path in paths)
  1552. {
  1553. SSDKImage *image = nil;
  1554. if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
  1555. options:MOBFRegexOptionsNoOptions
  1556. inRange:NSMakeRange(0, path.length)
  1557. withString:path])
  1558. {
  1559. image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:path]];
  1560. }
  1561. else
  1562. {
  1563. UIImage *localImg = [UIImage imageWithContentsOfFile:path];
  1564. image = [[SSDKImage alloc] initWithImage:localImg
  1565. format:SSDKImageFormatJpeg
  1566. settings:nil];
  1567. }
  1568. if (image)
  1569. {
  1570. [images addObject:path];
  1571. }
  1572. else
  1573. {
  1574. NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
  1575. }
  1576. }
  1577. }
  1578. if ([[value objectForKey:@"attachmentPath"] isKindOfClass:[NSString class]])
  1579. {
  1580. NSData *attachementsData = [NSData dataWithContentsOfFile:[value objectForKey:@"attachmentPath"]];
  1581. [attachments addObject:attachementsData];
  1582. }
  1583. else if ([[value objectForKey:@"attachmentPath"] isKindOfClass:[NSArray class]])
  1584. {
  1585. NSArray *paths = [value objectForKey:@"attachmentPath"];
  1586. for (NSString *path in paths)
  1587. {
  1588. NSData *attachementsData = [NSData dataWithContentsOfFile:path];
  1589. [attachments addObject:attachementsData];
  1590. }
  1591. }
  1592. if ([[value objectForKey:@"recipients"] isKindOfClass:[NSString class]])
  1593. {
  1594. [recipients addObject:[value objectForKey:@"recipients"]];
  1595. }
  1596. else if ([[value objectForKey:@"recipients"] isKindOfClass:[NSArray class]])
  1597. {
  1598. NSArray *recipientsArray = [value objectForKey:@"recipients"];
  1599. for (NSString *recipient in recipientsArray)
  1600. {
  1601. [recipients addObject:recipient];
  1602. }
  1603. }
  1604. if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
  1605. {
  1606. type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
  1607. }
  1608. [params SSDKSetupSMSParamsByText:text
  1609. title:title
  1610. images:images
  1611. attachments:attachments
  1612. recipients:recipients
  1613. type:type];
  1614. }
  1615. //Print
  1616. //无定制内容方法
  1617. //Copy
  1618. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeCopy]]];
  1619. if ([value isKindOfClass:[NSDictionary class]])
  1620. {
  1621. NSString *text = nil;
  1622. NSMutableArray *images = [NSMutableArray array];
  1623. NSString *url = nil;
  1624. SSDKContentType type = SSDKContentTypeImage;
  1625. if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
  1626. {
  1627. text = [value objectForKey:@"text"];
  1628. }
  1629. if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
  1630. {
  1631. NSString *imgPath = [value objectForKey:@"imageUrl"];
  1632. SSDKImage *image = nil;
  1633. if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
  1634. options:MOBFRegexOptionsNoOptions
  1635. inRange:NSMakeRange(0, imgPath.length)
  1636. withString:imgPath])
  1637. {
  1638. image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:imgPath]];
  1639. }
  1640. else
  1641. {
  1642. UIImage *localImg = [UIImage imageWithContentsOfFile:imgPath];
  1643. image = [[SSDKImage alloc] initWithImage:localImg
  1644. format:SSDKImageFormatJpeg
  1645. settings:nil];
  1646. }
  1647. if (image)
  1648. {
  1649. [images addObject:imgPath];
  1650. }
  1651. else
  1652. {
  1653. NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
  1654. }
  1655. }
  1656. else if([[value objectForKey:@"imageUrl"] isKindOfClass:[NSArray class]])
  1657. {
  1658. NSArray *paths = [value objectForKey:@"imageUrl"];
  1659. for (NSString *path in paths)
  1660. {
  1661. SSDKImage *image = nil;
  1662. if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
  1663. options:MOBFRegexOptionsNoOptions
  1664. inRange:NSMakeRange(0, path.length)
  1665. withString:path])
  1666. {
  1667. image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:path]];
  1668. }
  1669. else
  1670. {
  1671. UIImage *localImg = [UIImage imageWithContentsOfFile:path];
  1672. image = [[SSDKImage alloc] initWithImage:localImg
  1673. format:SSDKImageFormatJpeg
  1674. settings:nil];
  1675. }
  1676. if (image)
  1677. {
  1678. [images addObject:path];
  1679. }
  1680. else
  1681. {
  1682. NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
  1683. }
  1684. }
  1685. }
  1686. if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
  1687. {
  1688. url = [value objectForKey:@"url"];
  1689. }
  1690. if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
  1691. {
  1692. type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
  1693. }
  1694. [params SSDKSetupCopyParamsByText:text
  1695. images:images
  1696. url:[NSURL URLWithString:url]
  1697. type:type];
  1698. }
  1699. //Instapaper
  1700. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeInstapaper]]];
  1701. if ([value isKindOfClass:[NSDictionary class]])
  1702. {
  1703. NSString *url = nil;
  1704. NSString *title = nil;
  1705. NSString *desc = nil;
  1706. NSString *content = nil;
  1707. BOOL isPrivateFromSource;
  1708. NSInteger folderId;
  1709. BOOL resolveFinalUrl;
  1710. if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
  1711. {
  1712. url = [value objectForKey:@"url"];
  1713. }
  1714. if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
  1715. {
  1716. title = [value objectForKey:@"title"];
  1717. }
  1718. if ([[value objectForKey:@"desc"] isKindOfClass:[NSString class]])
  1719. {
  1720. desc = [value objectForKey:@"desc"];
  1721. }
  1722. if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
  1723. {
  1724. content = [value objectForKey:@"text"];
  1725. }
  1726. if ([[value objectForKey:@"isPrivateFromSource"] boolValue])
  1727. {
  1728. isPrivateFromSource = YES;
  1729. }
  1730. if (![[value objectForKey:@"resolveFinalUrl"] boolValue])
  1731. {
  1732. resolveFinalUrl = YES;
  1733. }
  1734. folderId = [[value objectForKey:@"folderId"] integerValue];
  1735. [params SSDKSetupInstapaperParamsByUrl:[NSURL URLWithString:url]
  1736. title:title
  1737. desc:desc
  1738. content:content
  1739. isPrivateFromSource:isPrivateFromSource
  1740. folderId:folderId
  1741. resolveFinalUrl:resolveFinalUrl];
  1742. }
  1743. //Pocket
  1744. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypePocket]]];
  1745. if ([value isKindOfClass:[NSDictionary class]])
  1746. {
  1747. NSString *url = nil;
  1748. NSString *title = nil;
  1749. NSString *tags = nil;
  1750. NSString *tweetId = nil;
  1751. if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
  1752. {
  1753. url = [value objectForKey:@"url"];
  1754. }
  1755. if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
  1756. {
  1757. title = [value objectForKey:@"title"];
  1758. }
  1759. id tagValue = [value objectForKey:@"tags"];
  1760. if ([tagValue isKindOfClass:[NSString class]])
  1761. {
  1762. tags = tagValue;
  1763. }
  1764. else if ([tagValue isKindOfClass:[NSArray class]])
  1765. {
  1766. NSArray *tagsArr = tagValue;
  1767. tags = [tagsArr componentsJoinedByString:@","];
  1768. }
  1769. if ([[value objectForKey:@"tweetID"] isKindOfClass:[NSString class]])
  1770. {
  1771. tweetId = [value objectForKey:@"tweetID"];
  1772. }
  1773. [params SSDKSetupPocketParamsByUrl:[NSURL URLWithString:url]
  1774. title:title
  1775. tags:tags
  1776. tweetId:tweetId];
  1777. }
  1778. //YouDaoNote
  1779. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeYouDaoNote]]];
  1780. if ([value isKindOfClass:[NSDictionary class]])
  1781. {
  1782. NSString *text = nil;
  1783. NSString *title = nil;
  1784. NSMutableArray *images = [NSMutableArray array];
  1785. NSString *source = nil;
  1786. NSString *author = nil;
  1787. NSString *notebook = nil;
  1788. if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
  1789. {
  1790. text = [value objectForKey:@"text"];
  1791. }
  1792. if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
  1793. {
  1794. title = [value objectForKey:@"title"];
  1795. }
  1796. if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
  1797. {
  1798. NSString *imgPath = [value objectForKey:@"imageUrl"];
  1799. SSDKImage *image = nil;
  1800. if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
  1801. options:MOBFRegexOptionsNoOptions
  1802. inRange:NSMakeRange(0, imgPath.length)
  1803. withString:imgPath])
  1804. {
  1805. image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:imgPath]];
  1806. }
  1807. else
  1808. {
  1809. UIImage *localImg = [UIImage imageWithContentsOfFile:imgPath];
  1810. image = [[SSDKImage alloc] initWithImage:localImg
  1811. format:SSDKImageFormatJpeg
  1812. settings:nil];
  1813. }
  1814. if (image)
  1815. {
  1816. [images addObject:imgPath];
  1817. }
  1818. else
  1819. {
  1820. NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
  1821. }
  1822. }
  1823. else if([[value objectForKey:@"imageUrl"] isKindOfClass:[NSArray class]])
  1824. {
  1825. NSArray *paths = [value objectForKey:@"imageUrl"];
  1826. for (NSString *path in paths)
  1827. {
  1828. SSDKImage *image = nil;
  1829. if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
  1830. options:MOBFRegexOptionsNoOptions
  1831. inRange:NSMakeRange(0, path.length)
  1832. withString:path])
  1833. {
  1834. image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:path]];
  1835. }
  1836. else
  1837. {
  1838. UIImage *localImg = [UIImage imageWithContentsOfFile:path];
  1839. image = [[SSDKImage alloc] initWithImage:localImg
  1840. format:SSDKImageFormatJpeg
  1841. settings:nil];
  1842. }
  1843. if (image)
  1844. {
  1845. [images addObject:path];
  1846. }
  1847. else
  1848. {
  1849. NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
  1850. }
  1851. }
  1852. }
  1853. if ([[value objectForKey:@"source"] isKindOfClass:[NSString class]])
  1854. {
  1855. source = [value objectForKey:@"source"];
  1856. }
  1857. if ([[value objectForKey:@"author"] isKindOfClass:[NSString class]])
  1858. {
  1859. author = [value objectForKey:@"author"];
  1860. }
  1861. if ([[value objectForKey:@"notebook"] isKindOfClass:[NSString class]])
  1862. {
  1863. notebook = [value objectForKey:@"notebook"];
  1864. }
  1865. [params SSDKSetupYouDaoNoteParamsByText:text
  1866. images:images
  1867. title:title
  1868. source:source
  1869. author:author
  1870. notebook:notebook];
  1871. }
  1872. //Pinterest
  1873. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypePinterest]]];
  1874. if ([value isKindOfClass:[NSDictionary class]])
  1875. {
  1876. NSString *image = nil;
  1877. NSString *desc = nil;
  1878. NSString *url = nil;
  1879. NSString *board = nil;
  1880. if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
  1881. {
  1882. image = [value objectForKey:@"imageUrl"];
  1883. }
  1884. if ([[value objectForKey:@"desc"] isKindOfClass:[NSString class]])
  1885. {
  1886. desc = [value objectForKey:@"desc"];
  1887. }
  1888. if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
  1889. {
  1890. url = [value objectForKey:@"url"];
  1891. }
  1892. if ([[value objectForKey:@"board"] isKindOfClass:[NSString class]])
  1893. {
  1894. board = [value objectForKey:@"board"];
  1895. }
  1896. [params SSDKSetupPinterestParamsByImage:image
  1897. desc:desc
  1898. url:[NSURL URLWithString:url]
  1899. boardName:board];
  1900. }
  1901. //Flickr
  1902. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeFlickr]]];
  1903. if ([value isKindOfClass:[NSDictionary class]])
  1904. {
  1905. NSString *text = nil;
  1906. NSString *image = nil;
  1907. NSString *title = nil;
  1908. NSMutableArray *tags = [NSMutableArray array];
  1909. BOOL isPublic;
  1910. BOOL isFriend;
  1911. BOOL isFamiliy;
  1912. NSInteger safetyLevel;
  1913. NSInteger contentType;
  1914. NSInteger hidden;
  1915. if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
  1916. {
  1917. text = [value objectForKey:@"text"];
  1918. }
  1919. if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
  1920. {
  1921. image = [value objectForKey:@"imageUrl"];
  1922. }
  1923. if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
  1924. {
  1925. title = [value objectForKey:@"title"];
  1926. }
  1927. id tagValue = [value objectForKey:@"tags"];
  1928. if ([tagValue isKindOfClass:[NSString class]])
  1929. {
  1930. [tags addObject:tagValue];
  1931. }
  1932. else if ([tagValue isKindOfClass:[NSArray class]])
  1933. {
  1934. tags = [tagValue mutableCopy];
  1935. }
  1936. if ([[value objectForKey:@"isPublic"] boolValue])
  1937. {
  1938. isPublic = YES;
  1939. }
  1940. if ([[value objectForKey:@"isFriend"] boolValue])
  1941. {
  1942. isFriend = YES;
  1943. }
  1944. if ([[value objectForKey:@"isFamiliy"] boolValue])
  1945. {
  1946. isFamiliy = YES;
  1947. }
  1948. if ([[value objectForKey:@"safetyLevel"] integerValue])
  1949. {
  1950. safetyLevel = [[value objectForKey:@"safetyLevel"] integerValue];
  1951. }
  1952. if ([[value objectForKey:@"contentType"] integerValue])
  1953. {
  1954. contentType = [[value objectForKey:@"contentType"] integerValue];
  1955. }
  1956. if ([[value objectForKey:@"hidden"] integerValue])
  1957. {
  1958. hidden = [[value objectForKey:@"hidden"] integerValue];
  1959. }
  1960. [params SSDKSetupFlickrParamsByText:text
  1961. image:image
  1962. title:title
  1963. tags:tags
  1964. isPublic:isPublic
  1965. isFriend:isFriend
  1966. isFamily:isFamiliy
  1967. safetyLevel:safetyLevel
  1968. contentType:contentType
  1969. hidden:hidden];
  1970. }
  1971. //Dropbox
  1972. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeDropbox]]];
  1973. if ([value isKindOfClass:[NSDictionary class]])
  1974. {
  1975. NSString *attachmentPath = nil;
  1976. if ([[value objectForKey:@"attachmentPath"] isKindOfClass:[NSString class]])
  1977. {
  1978. attachmentPath = [value objectForKey:@"attachmentPath"];
  1979. }
  1980. [params SSDKSetupDropboxParamsByAttachment:attachmentPath];
  1981. }
  1982. //VKontakte
  1983. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeVKontakte]]];
  1984. if ([value isKindOfClass:[NSDictionary class]])
  1985. {
  1986. NSString *text = nil;
  1987. NSString *url = nil;
  1988. NSMutableArray *images = [NSMutableArray array];
  1989. NSString *groupId = nil;
  1990. BOOL friendsOnly;
  1991. double lat;
  1992. double lng;
  1993. SSDKContentType type = SSDKContentTypeText;
  1994. if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
  1995. {
  1996. text = [value objectForKey:@"text"];
  1997. }
  1998. if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
  1999. {
  2000. url = [value objectForKey:@"url"];
  2001. }
  2002. if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
  2003. {
  2004. NSString *imgPath = [value objectForKey:@"imageUrl"];
  2005. SSDKImage *image = nil;
  2006. if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
  2007. options:MOBFRegexOptionsNoOptions
  2008. inRange:NSMakeRange(0, imgPath.length)
  2009. withString:imgPath])
  2010. {
  2011. image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:imgPath]];
  2012. }
  2013. else
  2014. {
  2015. UIImage *localImg = [UIImage imageWithContentsOfFile:imgPath];
  2016. image = [[SSDKImage alloc] initWithImage:localImg
  2017. format:SSDKImageFormatJpeg
  2018. settings:nil];
  2019. }
  2020. if (image)
  2021. {
  2022. [images addObject:imgPath];
  2023. }
  2024. else
  2025. {
  2026. NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
  2027. }
  2028. }
  2029. else if([[value objectForKey:@"imageUrl"] isKindOfClass:[NSArray class]])
  2030. {
  2031. NSArray *paths = [value objectForKey:@"imageUrl"];
  2032. for (NSString *path in paths)
  2033. {
  2034. SSDKImage *image = nil;
  2035. if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
  2036. options:MOBFRegexOptionsNoOptions
  2037. inRange:NSMakeRange(0, path.length)
  2038. withString:path])
  2039. {
  2040. image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:path]];
  2041. }
  2042. else
  2043. {
  2044. UIImage *localImg = [UIImage imageWithContentsOfFile:path];
  2045. image = [[SSDKImage alloc] initWithImage:localImg
  2046. format:SSDKImageFormatJpeg
  2047. settings:nil];
  2048. }
  2049. if (image)
  2050. {
  2051. [images addObject:path];
  2052. }
  2053. else
  2054. {
  2055. NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
  2056. }
  2057. }
  2058. }
  2059. if ([[value objectForKey:@"groupID"] isKindOfClass:[NSString class]])
  2060. {
  2061. groupId = [value objectForKey:@"groupID"];
  2062. }
  2063. if ([[value objectForKey:@"friendsOnly"] boolValue])
  2064. {
  2065. friendsOnly = YES;
  2066. }
  2067. if ([[value objectForKey:@"latitude"] isKindOfClass:[NSString class]])
  2068. {
  2069. lat = [[value objectForKey:@"latitude"] doubleValue];
  2070. }
  2071. if ([[value objectForKey:@"longitude"] isKindOfClass:[NSString class]])
  2072. {
  2073. lng = [[value objectForKey:@"longitude"] doubleValue];
  2074. }
  2075. if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
  2076. {
  2077. type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
  2078. }
  2079. [params SSDKSetupVKontakteParamsByText:text
  2080. images:images
  2081. url:[NSURL URLWithString:url]
  2082. groupId:groupId
  2083. friendsOnly:friendsOnly
  2084. latitude:lat
  2085. longitude:lng
  2086. type:type];
  2087. }
  2088. //Yixin系列
  2089. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformSubTypeYiXinSession]]];
  2090. if ([value isKindOfClass:[NSDictionary class]])
  2091. {
  2092. __setYixinParams(value, params, SSDKPlatformSubTypeYiXinSession);
  2093. }
  2094. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformSubTypeYiXinTimeline]]];
  2095. if ([value isKindOfClass:[NSDictionary class]])
  2096. {
  2097. __setYixinParams(value, params, SSDKPlatformSubTypeYiXinTimeline);
  2098. }
  2099. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformSubTypeYiXinFav]]];
  2100. if ([value isKindOfClass:[NSDictionary class]])
  2101. {
  2102. __setYixinParams(value, params, SSDKPlatformSubTypeYiXinFav);
  2103. }
  2104. //MingDao
  2105. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeMingDao]]];
  2106. if ([value isKindOfClass:[NSDictionary class]])
  2107. {
  2108. NSString *text = nil;
  2109. NSString *image = nil;
  2110. NSString *url = nil;
  2111. NSString *title = nil;
  2112. SSDKContentType type = SSDKContentTypeText;
  2113. if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
  2114. {
  2115. text = [value objectForKey:@"text"];
  2116. }
  2117. if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
  2118. {
  2119. image = [value objectForKey:@"imageUrl"];
  2120. }
  2121. if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
  2122. {
  2123. url = [value objectForKey:@"url"];
  2124. }
  2125. if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
  2126. {
  2127. title = [value objectForKey:@"title"];
  2128. }
  2129. if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
  2130. {
  2131. type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
  2132. }
  2133. [params SSDKSetupMingDaoParamsByText:text
  2134. image:image
  2135. url:[NSURL URLWithString:url]
  2136. title:title
  2137. type:type];
  2138. }
  2139. //Line
  2140. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeLine]]];
  2141. if ([value isKindOfClass:[NSDictionary class]])
  2142. {
  2143. NSString *text = nil;
  2144. NSString *image = nil;
  2145. SSDKContentType type = SSDKContentTypeText;
  2146. if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
  2147. {
  2148. text = [value objectForKey:@"text"];
  2149. }
  2150. if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
  2151. {
  2152. image = [value objectForKey:@"imageUrl"];
  2153. }
  2154. if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
  2155. {
  2156. type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
  2157. }
  2158. [params SSDKSetupLineParamsByText:text
  2159. image:image
  2160. type:type];
  2161. }
  2162. //whatsApp
  2163. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeWhatsApp]]];
  2164. if ([value isKindOfClass:[NSDictionary class]])
  2165. {
  2166. NSString *text = nil;
  2167. NSString *image = nil;
  2168. NSString *audioPath = nil;
  2169. NSString *videoPath = nil;
  2170. CGFloat menuX;
  2171. CGFloat menuY;
  2172. SSDKContentType type = SSDKContentTypeText;
  2173. if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
  2174. {
  2175. text = [value objectForKey:@"text"];
  2176. }
  2177. if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
  2178. {
  2179. image = [value objectForKey:@"imageUrl"];
  2180. }
  2181. if ([[value objectForKey:@"audioPath"] isKindOfClass:[NSString class]])
  2182. {
  2183. audioPath = [value objectForKey:@"audioPath"];
  2184. }
  2185. if ([[value objectForKey:@"videoPath"] isKindOfClass:[NSString class]])
  2186. {
  2187. videoPath = [value objectForKey:@"videoPath"];
  2188. }
  2189. if ([[value objectForKey:@"menuX"] isKindOfClass:[NSString class]])
  2190. {
  2191. menuX = [[value objectForKey:@"menuX"] floatValue];
  2192. }
  2193. if ([[value objectForKey:@"menuY"] isKindOfClass:[NSString class]])
  2194. {
  2195. menuX = [[value objectForKey:@"menuY"] floatValue];
  2196. }
  2197. CGPoint point = CGPointMake(menuX, menuY);
  2198. if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
  2199. {
  2200. type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
  2201. }
  2202. [params SSDKSetupWhatsAppParamsByText:text
  2203. image:image
  2204. audio:audioPath
  2205. video:videoPath
  2206. menuDisplayPoint:point
  2207. type:type];
  2208. }
  2209. //Kakao系列
  2210. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformSubTypeKakaoTalk]]];
  2211. if ([value isKindOfClass:[NSDictionary class]])
  2212. {
  2213. __setKakaoParams(value,params,SSDKPlatformSubTypeKakaoTalk);
  2214. }
  2215. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformSubTypeKakaoStory]]];
  2216. if ([value isKindOfClass:[NSDictionary class]])
  2217. {
  2218. __setKakaoParams(value,params,SSDKPlatformSubTypeKakaoStory);
  2219. }
  2220. //支付宝好友
  2221. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeAliPaySocial]]];
  2222. if ([value isKindOfClass:[NSDictionary class]])
  2223. {
  2224. NSString *text = nil;
  2225. NSString *image = nil;
  2226. NSString *title = nil;
  2227. NSString *url = nil;
  2228. SSDKContentType type = SSDKContentTypeText;
  2229. if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
  2230. {
  2231. text = [value objectForKey:@"text"];
  2232. }
  2233. if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
  2234. {
  2235. image = [value objectForKey:@"imageUrl"];
  2236. }
  2237. if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
  2238. {
  2239. title = [value objectForKey:@"title"];
  2240. }
  2241. if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
  2242. {
  2243. url = [value objectForKey:@"url"];
  2244. }
  2245. if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
  2246. {
  2247. type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
  2248. }
  2249. [params SSDKSetupAliPaySocialParamsByText:text
  2250. image:img
  2251. title:title
  2252. url:[NSURL URLWithString:url]
  2253. type:type
  2254. platformType:SSDKPlatformTypeAliPaySocial];
  2255. }
  2256. //支付宝朋友圈
  2257. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeAliPaySocialTimeline]]];
  2258. if ([value isKindOfClass:[NSDictionary class]])
  2259. {
  2260. NSString *text = nil;
  2261. NSString *image = nil;
  2262. NSString *title = nil;
  2263. NSString *url = nil;
  2264. SSDKContentType type = SSDKContentTypeText;
  2265. if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
  2266. {
  2267. text = [value objectForKey:@"text"];
  2268. }
  2269. if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
  2270. {
  2271. image = [value objectForKey:@"imageUrl"];
  2272. }
  2273. if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
  2274. {
  2275. title = [value objectForKey:@"title"];
  2276. }
  2277. if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
  2278. {
  2279. url = [value objectForKey:@"url"];
  2280. }
  2281. if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
  2282. {
  2283. type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
  2284. }
  2285. [params SSDKSetupAliPaySocialParamsByText:text
  2286. image:img
  2287. title:title
  2288. url:[NSURL URLWithString:url]
  2289. type:type
  2290. platformType:SSDKPlatformTypeAliPaySocialTimeline];
  2291. }
  2292. //钉钉
  2293. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeDingTalk]]];
  2294. if ([value isKindOfClass:[NSDictionary class]])
  2295. {
  2296. NSString *text = nil;
  2297. NSString *image = nil;
  2298. NSString *title = nil;
  2299. NSString *url = nil;
  2300. SSDKContentType type = SSDKContentTypeText;
  2301. if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
  2302. {
  2303. text = [value objectForKey:@"text"];
  2304. }
  2305. if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
  2306. {
  2307. image = [value objectForKey:@"imageUrl"];
  2308. }
  2309. if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
  2310. {
  2311. title = [value objectForKey:@"title"];
  2312. }
  2313. if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
  2314. {
  2315. url = [value objectForKey:@"url"];
  2316. }
  2317. if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
  2318. {
  2319. type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
  2320. }
  2321. [params SSDKSetupDingTalkParamsByText:text
  2322. image:image
  2323. title:title
  2324. url:[NSURL URLWithString:url]
  2325. type:type];
  2326. }
  2327. //Evernote
  2328. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeEvernote]]];
  2329. if ([value isKindOfClass:[NSDictionary class]])
  2330. {
  2331. NSString *text = nil;
  2332. NSString *title = nil;
  2333. NSMutableArray *images = [NSMutableArray array];
  2334. NSMutableArray *tags = [NSMutableArray array];
  2335. NSString *notebook = nil;
  2336. if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
  2337. {
  2338. text = [value objectForKey:@"text"];
  2339. }
  2340. if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
  2341. {
  2342. title = [value objectForKey:@"title"];
  2343. }
  2344. if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
  2345. {
  2346. NSString *imgPath = [value objectForKey:@"imageUrl"];
  2347. SSDKImage *image = nil;
  2348. if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
  2349. options:MOBFRegexOptionsNoOptions
  2350. inRange:NSMakeRange(0, imgPath.length)
  2351. withString:imgPath])
  2352. {
  2353. image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:imgPath]];
  2354. }
  2355. else
  2356. {
  2357. UIImage *localImg = [UIImage imageWithContentsOfFile:imgPath];
  2358. image = [[SSDKImage alloc] initWithImage:localImg
  2359. format:SSDKImageFormatJpeg
  2360. settings:nil];
  2361. }
  2362. if (image)
  2363. {
  2364. [images addObject:imgPath];
  2365. }
  2366. else
  2367. {
  2368. NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
  2369. }
  2370. }
  2371. else if([[value objectForKey:@"imageUrl"] isKindOfClass:[NSArray class]])
  2372. {
  2373. NSArray *paths = [value objectForKey:@"imageUrl"];
  2374. for (NSString *path in paths)
  2375. {
  2376. SSDKImage *image = nil;
  2377. if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
  2378. options:MOBFRegexOptionsNoOptions
  2379. inRange:NSMakeRange(0, path.length)
  2380. withString:path])
  2381. {
  2382. image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:path]];
  2383. }
  2384. else
  2385. {
  2386. UIImage *localImg = [UIImage imageWithContentsOfFile:path];
  2387. image = [[SSDKImage alloc] initWithImage:localImg
  2388. format:SSDKImageFormatJpeg
  2389. settings:nil];
  2390. }
  2391. if (image)
  2392. {
  2393. [images addObject:path];
  2394. }
  2395. else
  2396. {
  2397. NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
  2398. }
  2399. }
  2400. }
  2401. if ([[value objectForKey:@"notebook"] isKindOfClass:[NSString class]])
  2402. {
  2403. notebook = [value objectForKey:@"notebook"];
  2404. }
  2405. id tagValue = [value objectForKey:@"tags"];
  2406. if ([tagValue isKindOfClass:[NSString class]])
  2407. {
  2408. [tags addObject:tagValue];
  2409. }
  2410. else if ([tagValue isKindOfClass:[NSArray class]])
  2411. {
  2412. tags = [tagValue mutableCopy];
  2413. }
  2414. [params SSDKSetupEvernoteParamsByText:text
  2415. images:images
  2416. title:title
  2417. notebook:notebook
  2418. tags:tags
  2419. platformType:SSDKPlatformTypeEvernote];
  2420. }
  2421. //Youtube
  2422. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeYouTube]]];
  2423. if ([value isKindOfClass:[NSDictionary class]])
  2424. {
  2425. NSString *desc = nil;
  2426. NSString *title = nil;
  2427. NSString *videoPath = nil;
  2428. NSMutableArray *tags = [NSMutableArray array];
  2429. SSDKPrivacyStatus privacyStatus = SSDKPrivacyStatusPrivate;
  2430. if ([[value objectForKey:@"desc"] isKindOfClass:[NSString class]])
  2431. {
  2432. desc = [value objectForKey:@"desc"];
  2433. }
  2434. if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
  2435. {
  2436. title = [value objectForKey:@"title"];
  2437. }
  2438. id tagValue = [value objectForKey:@"tags"];
  2439. if ([tagValue isKindOfClass:[NSString class]])
  2440. {
  2441. NSArray *tagArr = [tagValue componentsSeparatedByString:@","];
  2442. [tags addObjectsFromArray:tagArr];
  2443. }
  2444. else if ([tagValue isKindOfClass:[NSArray class]])
  2445. {
  2446. tags = [tagValue mutableCopy];
  2447. }
  2448. if ([[value objectForKey:@"videoPath"] isKindOfClass:[NSString class]])
  2449. {
  2450. videoPath = [value objectForKey:@"videoPath"];
  2451. }
  2452. if ([[value objectForKey:@"privateStatus"] integerValue] != 0) {
  2453. privacyStatus = [[value objectForKey:@"privateStatus"] integerValue];
  2454. }
  2455. [params SSDKSetupYouTubeParamsByVideo:videoPath
  2456. title:title
  2457. description:desc
  2458. tags:tags
  2459. privacyStatus:privacyStatus];
  2460. }
  2461. value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeMeiPai]]];
  2462. if ([value isKindOfClass:[NSDictionary class]])
  2463. {
  2464. NSString *videoPath = nil;
  2465. SSDKContentType type = SSDKContentTypeVideo;
  2466. if ([[value objectForKey:@"videoPath"] isKindOfClass:[NSString class]])
  2467. {
  2468. videoPath = [value objectForKey:@"videoPath"];
  2469. }
  2470. if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
  2471. {
  2472. type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
  2473. }
  2474. [params SSDKSetupMeiPaiParamsByUrl:[NSURL URLWithString:videoPath]
  2475. type:type];
  2476. }
  2477. }
  2478. }
  2479. return params;
  2480. }
  2481. void __iosShareSDKRegisterAppAndSetPltformsConfig (void *appKey, void*configInfo)
  2482. {
  2483. NSMutableArray *activePlatforms = [NSMutableArray array];
  2484. NSMutableDictionary *platformsDict = [NSMutableDictionary dictionary];
  2485. NSString *appKeyStr = [NSString stringWithCString:appKey encoding:NSUTF8StringEncoding];
  2486. if (configInfo)
  2487. {
  2488. platformsDict = __parseWithHashtable(configInfo);
  2489. }
  2490. for (id obj in [platformsDict allKeys])
  2491. {
  2492. NSInteger platformInterger = [obj integerValue];
  2493. NSDictionary *dict = [platformsDict objectForKey:[NSString stringWithFormat:@"%@",obj]];
  2494. if ([[dict objectForKey:@"Enable"] isEqualToString:@"true"])
  2495. {
  2496. [activePlatforms addObject:[NSNumber numberWithInteger:platformInterger]];
  2497. }
  2498. }
  2499. [ShareSDK registerApp:appKeyStr
  2500. activePlatforms:activePlatforms
  2501. onImport:^(SSDKPlatformType platformType) {
  2502. switch (platformType)
  2503. {
  2504. case SSDKPlatformTypeSinaWeibo:
  2505. #ifdef __SHARESDK_SINA_WEIBO__
  2506. [ShareSDKConnector connectWeibo:[WeiboSDK class]];
  2507. #endif
  2508. break;
  2509. case SSDKPlatformTypeQQ:
  2510. #ifdef __SHARESDK_QQ__
  2511. [ShareSDKConnector connectQQ:[QQApiInterface class]
  2512. tencentOAuthClass:[TencentOAuth class]];
  2513. #endif
  2514. break;
  2515. case SSDKPlatformTypeWechat:
  2516. #ifdef __SHARESDK_WECHAT__
  2517. [ShareSDKConnector connectWeChat:[WXApi class]];
  2518. #endif
  2519. break;
  2520. case SSDKPlatformTypeRenren:
  2521. #ifdef __SHARESDK_RENREN__
  2522. [ShareSDKConnector connectRenren:[RennClient class]];
  2523. #endif
  2524. break;
  2525. case SSDKPlatformTypeKakao:
  2526. #ifdef __SHARESDK_KAKAO__
  2527. [ShareSDKConnector connectKaKao:[KOSession class]];
  2528. #endif
  2529. break;
  2530. case SSDKPlatformTypeYiXin:
  2531. #ifdef __SHARESDK_YIXIN__
  2532. [ShareSDKConnector connectYiXin:[YXApi class]];
  2533. #endif
  2534. break;
  2535. case SSDKPlatformTypeFacebookMessenger:
  2536. #ifdef __SHARESDK_FACEBOOK_MSG__
  2537. [ShareSDKConnector connectFacebookMessenger:[FBSDKMessengerSharer class]];
  2538. #endif
  2539. break;
  2540. case SSDKPlatformTypeAliPaySocial:
  2541. #ifdef __SHARESDK_ALIPAYSOCIAL__
  2542. [ShareSDKConnector connectAliPaySocial:[APOpenAPI class]];
  2543. #endif
  2544. break;
  2545. case SSDKPlatformTypeDingTalk:
  2546. #ifdef __SHARESDK_DINGTALK__
  2547. [ShareSDKConnector connectDingTalk:[DTOpenAPI class]];
  2548. #endif
  2549. break;
  2550. case SSDKPlatformTypeMeiPai:
  2551. #ifdef __SHARESDK_MEIPAI__
  2552. [ShareSDKConnector connectMeiPai:[MPShareSDK class]];
  2553. #endif
  2554. break;
  2555. default:
  2556. break;
  2557. }
  2558. } onConfiguration:^(SSDKPlatformType platformType, NSMutableDictionary *appInfo) {
  2559. switch (platformType)
  2560. {
  2561. case SSDKPlatformTypeWechat:
  2562. {
  2563. NSArray *weChatTypes = @[@(SSDKPlatformTypeWechat),
  2564. @(SSDKPlatformSubTypeWechatSession),
  2565. @(SSDKPlatformSubTypeWechatTimeline),
  2566. @(SSDKPlatformSubTypeWechatFav)];
  2567. [weChatTypes enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
  2568. NSDictionary *wechatDict = [platformsDict objectForKey:[NSString stringWithFormat:@"%@",obj]];
  2569. if (wechatDict && [[wechatDict allKeys] count] > 0)
  2570. {
  2571. [appInfo SSDKSetupWeChatByAppId:[wechatDict objectForKey:@"app_id"]
  2572. appSecret:[wechatDict objectForKey:@"app_secret"]];
  2573. *stop = YES;
  2574. }
  2575. }];
  2576. break;
  2577. }
  2578. case SSDKPlatformTypeQQ:
  2579. {
  2580. NSArray *QQTypes = @[@(SSDKPlatformTypeQQ),
  2581. @(SSDKPlatformSubTypeQQFriend),
  2582. @(SSDKPlatformSubTypeQZone)];
  2583. [QQTypes enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
  2584. NSDictionary *QQDict = [platformsDict objectForKey:[NSString stringWithFormat:@"%@",obj]];
  2585. if (QQDict && [[QQDict allKeys] count] > 0)
  2586. {
  2587. [appInfo SSDKSetupQQByAppId:[QQDict objectForKey:@"app_id"]
  2588. appKey:[QQDict objectForKey:@"app_key"]
  2589. authType:[QQDict objectForKey:@"auth_type"]];
  2590. *stop = YES;
  2591. }
  2592. }];
  2593. break;
  2594. }
  2595. case SSDKPlatformTypeKakao:
  2596. {
  2597. NSArray *KakaoTypes = @[@(SSDKPlatformTypeKakao),
  2598. @(SSDKPlatformSubTypeKakaoTalk),
  2599. @(SSDKPlatformSubTypeKakaoStory)];
  2600. [KakaoTypes enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
  2601. NSDictionary *KakaoDict = [platformsDict objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)obj]];
  2602. if (KakaoDict && [[KakaoDict allKeys] count] > 0)
  2603. {
  2604. [appInfo SSDKSetupKaKaoByAppKey:[KakaoDict objectForKey:@"app_key"]
  2605. restApiKey:[KakaoDict objectForKey:@"rest_api_key"]
  2606. redirectUri:[KakaoDict objectForKey:@"redirect_uri"]
  2607. authType:[KakaoDict objectForKey:@"auth_type"]];
  2608. *stop = YES;
  2609. }
  2610. }];
  2611. break;
  2612. }
  2613. case SSDKPlatformTypeYiXin:
  2614. {
  2615. NSArray *yiXinTypes = @[@(SSDKPlatformTypeYiXin),
  2616. @(SSDKPlatformSubTypeYiXinSession),
  2617. @(SSDKPlatformSubTypeYiXinTimeline),
  2618. @(SSDKPlatformSubTypeYiXinFav)];
  2619. [yiXinTypes enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
  2620. NSDictionary *yixinDict = [platformsDict objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)obj]];
  2621. if (yixinDict && [[yixinDict allKeys] count] > 0)
  2622. {
  2623. [appInfo SSDKSetupYiXinByAppId:[yixinDict objectForKey:@"app_id"]
  2624. appSecret:[yixinDict objectForKey:@"app_secret"]
  2625. redirectUri:[yixinDict objectForKey:@"redirect_uri"]
  2626. authType:[yixinDict objectForKey:@"auth_type"]];
  2627. *stop = YES;
  2628. }
  2629. }];
  2630. break;
  2631. }
  2632. case SSDKPlatformTypeAliPaySocial:
  2633. {
  2634. NSDictionary *platformDict = nil;
  2635. NSDictionary *dictFromAliPaySocial = [platformsDict objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeAliPaySocial]];
  2636. NSDictionary *dictFromAliPaySocialTimeline = [platformsDict objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeAliPaySocialTimeline]];
  2637. if (dictFromAliPaySocial)
  2638. {
  2639. platformDict = dictFromAliPaySocial;
  2640. }
  2641. else
  2642. {
  2643. platformDict = dictFromAliPaySocialTimeline;
  2644. }
  2645. [appInfo addEntriesFromDictionary:platformDict];
  2646. break;
  2647. }
  2648. default:
  2649. {
  2650. NSDictionary *platformDict = [platformsDict objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)platformType]];
  2651. [appInfo addEntriesFromDictionary:platformDict];
  2652. break;
  2653. }
  2654. }
  2655. }];
  2656. }
  2657. void __iosShareSDKAuthorize (int reqID, int platType, void *observer)
  2658. {
  2659. NSString *observerStr = nil;
  2660. if (observer)
  2661. {
  2662. observerStr = [NSString stringWithCString:observer encoding:NSUTF8StringEncoding];
  2663. }
  2664. [ShareSDK authorize:platType
  2665. settings:nil
  2666. onStateChanged:^(SSDKResponseState state, SSDKUser *user, NSError *error) {
  2667. NSMutableDictionary *resultDict = [NSMutableDictionary dictionary];
  2668. [resultDict setObject:[NSNumber numberWithInteger:1] forKey:@"action"];
  2669. [resultDict setObject:[NSNumber numberWithInteger:state] forKey:@"status"];
  2670. [resultDict setObject:[NSNumber numberWithInteger:platType] forKey:@"platform"];
  2671. [resultDict setObject:[NSNumber numberWithInteger:reqID] forKey:@"reqID"];
  2672. if (state == SSDKResponseStateFail && error)
  2673. {
  2674. NSMutableDictionary *errorDict = [NSMutableDictionary dictionary];
  2675. [errorDict setObject:[NSNumber numberWithInteger:[error code]] forKey:@"error_code"];
  2676. if ([[error userInfo] objectForKey:@"error_message"])
  2677. {
  2678. if ([[error userInfo] objectForKey:@"error_message"])
  2679. {
  2680. [errorDict setObject:[[error userInfo] objectForKey:@"error_message"] forKey:@"error_msg"];
  2681. }
  2682. }
  2683. else if ([[error userInfo] objectForKey:@"user_data"])
  2684. {
  2685. NSDictionary *error_data = [[error userInfo] objectForKey:@"user_data"];
  2686. if ([error_data objectForKey:@"error"])
  2687. {
  2688. [errorDict setObject:[error_data objectForKey:@"error"] forKey:@"error_msg"];
  2689. }
  2690. if ([error_data objectForKey:@"error_code"])
  2691. {
  2692. [errorDict setObject:[NSNumber numberWithInteger:[[error_data objectForKey:@"error_code"] integerValue]] forKey:@"error_code"];
  2693. }
  2694. }
  2695. [resultDict setObject:errorDict forKey:@"res"];
  2696. }
  2697. if (state == SSDKResponseStateSuccess)
  2698. {
  2699. if ([user rawData])
  2700. {
  2701. [resultDict setObject:[[user credential] rawData] forKey:@"res"];
  2702. }
  2703. }
  2704. NSString *resultStr = [MOBFJson jsonStringFromObject:resultDict];
  2705. UnitySendMessage([observerStr UTF8String], "_Callback", [resultStr UTF8String]);
  2706. }];
  2707. }
  2708. void __iosShareSDKCancelAuthorize (int platType)
  2709. {
  2710. [ShareSDK cancelAuthorize:platType];
  2711. }
  2712. bool __iosShareSDKHasAuthorized (int platType)
  2713. {
  2714. return [ShareSDK hasAuthorized:platType];
  2715. }
  2716. bool __iosShareSDKIsClientInstalled(int platType)
  2717. {
  2718. return [ShareSDK isClientInstalled:platType];
  2719. }
  2720. void __iosShareSDKGetUserInfo (int reqID, int platType, void *observer)
  2721. {
  2722. NSString *observerStr = nil;
  2723. if (observer)
  2724. {
  2725. observerStr = [NSString stringWithCString:observer encoding:NSUTF8StringEncoding];
  2726. }
  2727. [ShareSDK getUserInfo:platType
  2728. onStateChanged:^(SSDKResponseState state, SSDKUser *user, NSError *error)
  2729. {
  2730. NSMutableDictionary *resultDict = [NSMutableDictionary dictionary];
  2731. [resultDict setObject:[NSNumber numberWithInteger:8] forKey:@"action"];
  2732. [resultDict setObject:[NSNumber numberWithInteger:state] forKey:@"status"];
  2733. [resultDict setObject:[NSNumber numberWithInteger:platType] forKey:@"platform"];
  2734. [resultDict setObject:[NSNumber numberWithInteger:reqID] forKey:@"reqID"];
  2735. if (state == SSDKResponseStateFail && error)
  2736. {
  2737. NSMutableDictionary *errorDict = [NSMutableDictionary dictionary];
  2738. [errorDict setObject:[NSNumber numberWithInteger:[error code]]
  2739. forKey:@"error_code"];
  2740. if ([[error userInfo] objectForKey:@"error_message"])
  2741. {
  2742. if ([[error userInfo] objectForKey:@"error_message"])
  2743. {
  2744. [errorDict setObject:[[error userInfo] objectForKey:@"error_message"]
  2745. forKey:@"error_msg"];
  2746. }
  2747. }
  2748. else if ([[error userInfo] objectForKey:@"user_data"])
  2749. {
  2750. NSDictionary *error_data = [[error userInfo] objectForKey:@"user_data"];
  2751. if ([error_data objectForKey:@"error"])
  2752. {
  2753. [errorDict setObject:[error_data objectForKey:@"error"]
  2754. forKey:@"error_msg"];
  2755. }
  2756. if ([error_data objectForKey:@"error_code"])
  2757. {
  2758. [errorDict setObject:[NSNumber numberWithInteger:[[error_data objectForKey:@"error_code"] integerValue]]
  2759. forKey:@"error_code"];
  2760. }
  2761. }
  2762. [resultDict setObject:errorDict forKey:@"res"];
  2763. }
  2764. if (state == SSDKResponseStateSuccess && user)
  2765. {
  2766. [resultDict setObject:[user rawData] forKey:@"res"];
  2767. }
  2768. NSString *resultStr = [MOBFJson jsonStringFromObject:resultDict];
  2769. UnitySendMessage([observerStr UTF8String], "_Callback", [resultStr UTF8String]);
  2770. }];
  2771. }
  2772. void __iosShareSDKShare (int reqID, int platType, void *content, void *observer)
  2773. {
  2774. NSString *observerStr = nil;
  2775. NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
  2776. observerStr = [NSString stringWithCString:observer encoding:NSUTF8StringEncoding];
  2777. if (content)
  2778. {
  2779. NSString *contentStr = [NSString stringWithCString:content encoding:NSUTF8StringEncoding];
  2780. shareParams = __getShareParamsWithString(contentStr);
  2781. }
  2782. [ShareSDK share:platType
  2783. parameters:shareParams
  2784. onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) {
  2785. NSMutableDictionary *resultDict = [NSMutableDictionary dictionary];
  2786. [resultDict setObject:[NSNumber numberWithInteger:9] forKey:@"action"];
  2787. [resultDict setObject:[NSNumber numberWithInteger:state] forKey:@"status"];
  2788. [resultDict setObject:[NSNumber numberWithInteger:platType] forKey:@"platform"];
  2789. [resultDict setObject:[NSNumber numberWithInteger:reqID] forKey:@"reqID"];
  2790. if (state == SSDKResponseStateFail && error)
  2791. {
  2792. NSMutableDictionary *errorDict = [NSMutableDictionary dictionary];
  2793. [errorDict setObject:[NSNumber numberWithInteger:[error code]] forKey:@"error_code"];
  2794. if ([[error userInfo] objectForKey:@"error_message"])
  2795. {
  2796. if ([[error userInfo] objectForKey:@"error_message"])
  2797. {
  2798. [errorDict setObject:[[error userInfo] objectForKey:@"error_message"]
  2799. forKey:@"error_msg"];
  2800. }
  2801. }
  2802. else if ([[error userInfo] objectForKey:@"user_data"])
  2803. {
  2804. NSDictionary *error_data = [[error userInfo] objectForKey:@"user_data"];
  2805. if ([error_data objectForKey:@"error"])
  2806. {
  2807. [errorDict setObject:[error_data objectForKey:@"error"] forKey:@"error_msg"];
  2808. }
  2809. if ([error_data objectForKey:@"error_code"])
  2810. {
  2811. [errorDict setObject:[NSNumber numberWithInteger:[[error_data objectForKey:@"error_code"] integerValue]]
  2812. forKey:@"error_code"];
  2813. }
  2814. }
  2815. [resultDict setObject:errorDict forKey:@"res"];
  2816. }
  2817. if (state == SSDKResponseStateSuccess)
  2818. {
  2819. if ([contentEntity rawData])
  2820. {
  2821. [resultDict setObject:[contentEntity rawData] forKey:@"res"];
  2822. }
  2823. }
  2824. NSString *resultStr = [MOBFJson jsonStringFromObject:resultDict];
  2825. UnitySendMessage([observerStr UTF8String], "_Callback", [resultStr UTF8String]);
  2826. }];
  2827. }
  2828. void __iosShareSDKOneKeyShare (int reqID, void *platTypes, void *content, void *observer)
  2829. {
  2830. NSArray *platTypesArr = nil;
  2831. NSString *observerStr = nil;
  2832. NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
  2833. observerStr = [NSString stringWithCString:observer encoding:NSUTF8StringEncoding];
  2834. if (platTypes)
  2835. {
  2836. NSString *platTypesStr = [NSString stringWithCString:platTypes encoding:NSUTF8StringEncoding];
  2837. platTypesArr = [MOBFJson objectFromJSONString:platTypesStr];
  2838. }
  2839. if (content)
  2840. {
  2841. NSString *contentStr = [NSString stringWithCString:content encoding:NSUTF8StringEncoding];
  2842. shareParams = __getShareParamsWithString(contentStr);
  2843. }
  2844. [SSEShareHelper oneKeyShare:platTypesArr
  2845. parameters:shareParams
  2846. onStateChanged:^(SSDKPlatformType platformType, SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {
  2847. NSMutableDictionary *resultDict = [NSMutableDictionary dictionary];
  2848. [resultDict setObject:[NSNumber numberWithInteger:9] forKey:@"action"];
  2849. [resultDict setObject:[NSNumber numberWithInteger:state] forKey:@"status"];
  2850. [resultDict setObject:[NSNumber numberWithInteger:platformType] forKey:@"platform"];
  2851. [resultDict setObject:[NSNumber numberWithInteger:reqID] forKey:@"reqID"];
  2852. if (state == SSDKResponseStateFail && error)
  2853. {
  2854. NSMutableDictionary *errorDict = [NSMutableDictionary dictionary];
  2855. [errorDict setObject:[NSNumber numberWithInteger:[error code]] forKey:@"error_code"];
  2856. if ([[error userInfo] objectForKey:@"error_message"])
  2857. {
  2858. if ([[error userInfo] objectForKey:@"error_message"])
  2859. {
  2860. [errorDict setObject:[[error userInfo] objectForKey:@"error_message"] forKey:@"error_msg"];
  2861. }
  2862. }
  2863. else if ([[error userInfo] objectForKey:@"user_data"])
  2864. {
  2865. NSDictionary *error_data = [[error userInfo] objectForKey:@"user_data"];
  2866. if ([error_data objectForKey:@"error"])
  2867. {
  2868. [errorDict setObject:[error_data objectForKey:@"error"] forKey:@"error_msg"];
  2869. }
  2870. if ([error_data objectForKey:@"error_code"])
  2871. {
  2872. [errorDict setObject:[NSNumber numberWithInteger:[[error_data objectForKey:@"error_code"] integerValue]]
  2873. forKey:@"error_code"];
  2874. }
  2875. }
  2876. [resultDict setObject:errorDict forKey:@"res"];
  2877. }
  2878. if (state == SSDKResponseStateSuccess)
  2879. {
  2880. if ([contentEntity rawData])
  2881. {
  2882. [resultDict setObject:[contentEntity rawData] forKey:@"res"];
  2883. }
  2884. }
  2885. NSString *resultStr = [MOBFJson jsonStringFromObject:resultDict];
  2886. UnitySendMessage([observerStr UTF8String], "_Callback", [resultStr UTF8String]);
  2887. }];
  2888. }
  2889. void __iosShareSDKShowShareMenu (int reqID, void *platTypes, void *content, int x, int y, void *observer)
  2890. {
  2891. NSArray *platTypesArr = nil;
  2892. NSMutableArray *actionSheetItems = [NSMutableArray array];
  2893. NSString *observerStr = nil;
  2894. NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
  2895. observerStr = [NSString stringWithCString:observer encoding:NSUTF8StringEncoding];
  2896. if (platTypes)
  2897. {
  2898. NSString *platTypesStr = [NSString stringWithCString:platTypes encoding:NSUTF8StringEncoding];
  2899. platTypesArr = [MOBFJson objectFromJSONString:platTypesStr];
  2900. }
  2901. else
  2902. {
  2903. platTypesArr = [ShareSDK activePlatforms];
  2904. for (id obj in platTypesArr)
  2905. {
  2906. NSInteger platformInterger = [obj integerValue];
  2907. [actionSheetItems addObject:[NSNumber numberWithInteger:platformInterger]];
  2908. }
  2909. platTypesArr = [actionSheetItems mutableCopy];
  2910. }
  2911. if (content)
  2912. {
  2913. NSString *contentStr = [NSString stringWithCString:content encoding:NSUTF8StringEncoding];
  2914. shareParams = __getShareParamsWithString(contentStr);
  2915. }
  2916. if ([MOBFDevice isPad])
  2917. {
  2918. if (!_refView)
  2919. {
  2920. _refView = [[UIView alloc] initWithFrame:CGRectMake(x, y, 10, 10)];
  2921. }
  2922. [[UIApplication sharedApplication].keyWindow.rootViewController.view addSubview:_refView];
  2923. }
  2924. [ShareSDK showShareActionSheet:_refView
  2925. items:platTypesArr
  2926. shareParams:shareParams
  2927. onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {
  2928. NSMutableDictionary *resultDict = [NSMutableDictionary dictionary];
  2929. [resultDict setObject:[NSNumber numberWithInteger:9] forKey:@"action"];
  2930. [resultDict setObject:[NSNumber numberWithInteger:state] forKey:@"status"];
  2931. [resultDict setObject:[NSNumber numberWithInteger:platformType] forKey:@"platform"];
  2932. [resultDict setObject:[NSNumber numberWithInteger:reqID] forKey:@"reqID"];
  2933. if (state == SSDKResponseStateFail && error)
  2934. {
  2935. NSMutableDictionary *errorDict = [NSMutableDictionary dictionary];
  2936. [errorDict setObject:[NSNumber numberWithInteger:[error code]] forKey:@"error_code"];
  2937. if ([[error userInfo] objectForKey:@"error_message"])
  2938. {
  2939. if ([[error userInfo] objectForKey:@"error_message"])
  2940. {
  2941. [errorDict setObject:[[error userInfo] objectForKey:@"error_message"]
  2942. forKey:@"error_msg"];
  2943. }
  2944. }
  2945. else if ([[error userInfo] objectForKey:@"user_data"])
  2946. {
  2947. NSDictionary *error_data = [[error userInfo] objectForKey:@"user_data"];
  2948. if ([error_data objectForKey:@"error"])
  2949. {
  2950. [errorDict setObject:[error_data objectForKey:@"error"]
  2951. forKey:@"error_msg"];
  2952. }
  2953. else if ([error_data objectForKey:@"error_message"])
  2954. {
  2955. [errorDict setObject:[error_data objectForKey:@"error_message"]
  2956. forKey:@"error_msg"];
  2957. }
  2958. if ([error_data objectForKey:@"error_code"])
  2959. {
  2960. [errorDict setObject:[NSNumber numberWithInteger:[[error_data objectForKey:@"error_code"] integerValue]]
  2961. forKey:@"error_code"];
  2962. }
  2963. }
  2964. [resultDict setObject:errorDict forKey:@"res"];
  2965. }
  2966. if (state == SSDKResponseStateSuccess)
  2967. {
  2968. if ([contentEntity rawData])
  2969. {
  2970. [resultDict setObject:[contentEntity rawData] forKey:@"res"];
  2971. }
  2972. }
  2973. NSString *resultStr = [MOBFJson jsonStringFromObject:resultDict];
  2974. UnitySendMessage([observerStr UTF8String], "_Callback", [resultStr UTF8String]);
  2975. if (_refView)
  2976. {
  2977. //移除视图
  2978. [_refView removeFromSuperview];
  2979. }
  2980. }];
  2981. }
  2982. void __iosShareSDKShowShareView (int reqID, int platType, void *content, void *observer)
  2983. {
  2984. NSString *observerStr = nil;
  2985. NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
  2986. observerStr = [NSString stringWithCString:observer encoding:NSUTF8StringEncoding];
  2987. if (content)
  2988. {
  2989. NSString *contentStr = [NSString stringWithCString:content encoding:NSUTF8StringEncoding];
  2990. shareParams = __getShareParamsWithString(contentStr);
  2991. }
  2992. [ShareSDK showShareEditor:platType
  2993. otherPlatformTypes:nil
  2994. shareParams:shareParams
  2995. onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {
  2996. NSMutableDictionary *resultDict = [NSMutableDictionary dictionary];
  2997. [resultDict setObject:[NSNumber numberWithInteger:9] forKey:@"action"];
  2998. [resultDict setObject:[NSNumber numberWithInteger:state] forKey:@"status"];
  2999. [resultDict setObject:[NSNumber numberWithInteger:platformType] forKey:@"platform"];
  3000. [resultDict setObject:[NSNumber numberWithInteger:reqID] forKey:@"reqID"];
  3001. if (state == SSDKResponseStateFail && error)
  3002. {
  3003. NSMutableDictionary *errorDict = [NSMutableDictionary dictionary];
  3004. [errorDict setObject:[NSNumber numberWithInteger:[error code]] forKey:@"error_code"];
  3005. if ([[error userInfo] objectForKey:@"error_message"])
  3006. {
  3007. if ([[error userInfo] objectForKey:@"error_message"])
  3008. {
  3009. [errorDict setObject:[[error userInfo] objectForKey:@"error_message"] forKey:@"error_msg"];
  3010. }
  3011. }
  3012. else if ([[error userInfo] objectForKey:@"user_data"])
  3013. {
  3014. NSDictionary *error_data = [[error userInfo] objectForKey:@"user_data"];
  3015. if ([error_data objectForKey:@"error"])
  3016. {
  3017. [errorDict setObject:[error_data objectForKey:@"error"] forKey:@"error_msg"];
  3018. }
  3019. if ([error_data objectForKey:@"error_code"])
  3020. {
  3021. [errorDict setObject:[NSNumber numberWithInteger:[[error_data objectForKey:@"error_code"] integerValue]] forKey:@"error_code"];
  3022. }
  3023. }
  3024. [resultDict setObject:errorDict forKey:@"res"];
  3025. }
  3026. if (state == SSDKResponseStateSuccess)
  3027. {
  3028. if ([contentEntity rawData])
  3029. {
  3030. [resultDict setObject:[contentEntity rawData] forKey:@"res"];
  3031. }
  3032. }
  3033. NSString *resultStr = [MOBFJson jsonStringFromObject:resultDict];
  3034. UnitySendMessage([observerStr UTF8String], "_Callback", [resultStr UTF8String]);
  3035. }];
  3036. }
  3037. void __iosShareSDKGetFriendsList (int reqID, int platType, int count , int page, void *observer)
  3038. {
  3039. SSDKPlatformType shareType = (SSDKPlatformType)platType;
  3040. NSString *observerStr = [NSString stringWithCString:observer encoding:NSUTF8StringEncoding];
  3041. NSInteger cursor = page;
  3042. NSInteger size = count;
  3043. if (shareType == SSDKPlatformTypeTwitter)
  3044. {
  3045. cursor = -1;
  3046. }
  3047. [ShareSDK getFriends:platType
  3048. cursor:cursor
  3049. size:size
  3050. onStateChanged:^(SSDKResponseState state, SSDKFriendsPaging *paging, NSError *error)
  3051. {
  3052. NSMutableDictionary *resultDict = [NSMutableDictionary dictionary];
  3053. [resultDict setObject:[NSNumber numberWithInteger:2] forKey:@"action"];
  3054. [resultDict setObject:[NSNumber numberWithInteger:state] forKey:@"status"];
  3055. [resultDict setObject:[NSNumber numberWithInteger:shareType] forKey:@"platform"];
  3056. [resultDict setObject:[NSNumber numberWithInteger:reqID] forKey:@"reqID"];
  3057. if (state == SSDKResponseStateFail && error)
  3058. {
  3059. NSMutableDictionary *errorDict = [NSMutableDictionary dictionary];
  3060. [errorDict setObject:[NSNumber numberWithInteger:[error code]] forKey:@"error_code"];
  3061. if ([[error userInfo] objectForKey:@"error_message"])
  3062. {
  3063. if ([[error userInfo] objectForKey:@"error_message"])
  3064. {
  3065. [errorDict setObject:[[error userInfo] objectForKey:@"error_message"] forKey:@"error_msg"];
  3066. }
  3067. }
  3068. else if ([[error userInfo] objectForKey:@"user_data"])
  3069. {
  3070. NSDictionary *error_data = [[error userInfo] objectForKey:@"user_data"];
  3071. if ([error_data objectForKey:@"error"])
  3072. {
  3073. [errorDict setObject:[error_data objectForKey:@"error"] forKey:@"error_msg"];
  3074. }
  3075. if ([error_data objectForKey:@"error_code"])
  3076. {
  3077. [errorDict setObject:[NSNumber numberWithInteger:[[error_data objectForKey:@"error_code"] integerValue]] forKey:@"error_code"];
  3078. }
  3079. }
  3080. [resultDict setObject:errorDict forKey:@"res"];
  3081. }
  3082. if (state == SSDKResponseStateSuccess)
  3083. {
  3084. if (paging)
  3085. {
  3086. NSArray *friends = [NSArray array];
  3087. friends = paging.users;
  3088. NSMutableDictionary *resDict = [NSMutableDictionary dictionary];
  3089. [resDict setObject:friends forKey:@"users"];
  3090. [resDict setObject:[NSNumber numberWithInteger:paging.prevCursor] forKey:@"prev_cursor"];
  3091. [resDict setObject:[NSNumber numberWithInteger:paging.nextCursor] forKey:@"next_cursor"];
  3092. [resDict setObject:[NSNumber numberWithUnsignedInteger:paging.total] forKey:@"total"];
  3093. [resDict setObject:[NSNumber numberWithBool:paging.hasNext] forKey:@"has_next"];
  3094. [resultDict setObject:resDict forKey:@"res"];
  3095. }
  3096. }
  3097. NSString *resultStr = [MOBFJson jsonStringFromObject:resultDict];
  3098. UnitySendMessage([observerStr UTF8String], "_Callback", [resultStr UTF8String]);
  3099. }];
  3100. }
  3101. char * __StringCopy( const char *string)
  3102. {
  3103. if (string != NULL)
  3104. {
  3105. char *copyStr = (char*)malloc(strlen(string)+1);
  3106. strcpy(copyStr, string);
  3107. return copyStr;
  3108. }
  3109. else
  3110. {
  3111. return NULL;
  3112. }
  3113. }
  3114. extern const char* __iosShareSDKGetCredential (int platType)
  3115. {
  3116. SSDKPlatformType shareType = (SSDKPlatformType)platType;
  3117. SSDKUser *userInfo = [ShareSDK currentUser:shareType];
  3118. SSDKCredential *credential = userInfo.credential;
  3119. NSMutableDictionary *resultDict = [NSMutableDictionary dictionary];
  3120. [resultDict setObject:[NSNumber numberWithInteger:shareType] forKey:@"type"];
  3121. if ([credential available])
  3122. {
  3123. if ([credential uid])
  3124. {
  3125. [resultDict setObject:[credential uid] forKey:@"uid"];
  3126. }
  3127. if ([credential token])
  3128. {
  3129. [resultDict setObject:[credential token] forKey:@"token"];
  3130. }
  3131. if ([credential secret])
  3132. {
  3133. [resultDict setObject:[credential secret] forKey:@"secret"];
  3134. }
  3135. if ([credential expired])
  3136. {
  3137. [resultDict setObject:@([[credential expired] timeIntervalSince1970]) forKey:@"expired"];
  3138. }
  3139. [resultDict setObject:[NSNumber numberWithBool:[credential available]] forKey:@"available"];
  3140. }
  3141. else
  3142. {
  3143. [resultDict setObject:[NSNumber numberWithBool:NO] forKey:@"available"];
  3144. [resultDict setObject:@"Invalid Authorization" forKey:@"error"];
  3145. }
  3146. NSString *resultStr = [MOBFJson jsonStringFromObject:resultDict];
  3147. return __StringCopy([resultStr UTF8String]);
  3148. }
  3149. void __iosShareSDKFollowFriend (int reqID, int platType,void *account, void *observer)
  3150. {
  3151. SSDKPlatformType shareType = (SSDKPlatformType)platType;
  3152. NSString *observerStr = [NSString stringWithCString:observer encoding:NSUTF8StringEncoding];
  3153. SSDKUser *user = [[SSDKUser alloc]init];
  3154. user.uid = [NSString stringWithCString:account encoding:NSUTF8StringEncoding];
  3155. if (shareType == SSDKPlatformTypeTencentWeibo)
  3156. {
  3157. user.uid = nil;
  3158. user.nickname = [NSString stringWithCString:account encoding:NSUTF8StringEncoding];
  3159. }
  3160. [ShareSDK addFriend:shareType
  3161. user:user
  3162. onStateChanged:^(SSDKResponseState state, SSDKUser *user, NSError *error) {
  3163. NSMutableDictionary *resultDict = [NSMutableDictionary dictionary];
  3164. [resultDict setObject:[NSNumber numberWithInteger:6] forKey:@"action"];
  3165. [resultDict setObject:[NSNumber numberWithInteger:state] forKey:@"status"];
  3166. [resultDict setObject:[NSNumber numberWithInteger:shareType] forKey:@"platform"];
  3167. [resultDict setObject:[NSNumber numberWithInteger:reqID] forKey:@"reqID"];
  3168. if (state == SSDKResponseStateFail && error)
  3169. {
  3170. NSMutableDictionary *errorDict = [NSMutableDictionary dictionary];
  3171. [errorDict setObject:[NSNumber numberWithInteger:[error code]] forKey:@"error_code"];
  3172. if ([[error userInfo] objectForKey:@"error_message"])
  3173. {
  3174. if ([[error userInfo] objectForKey:@"error_message"])
  3175. {
  3176. [errorDict setObject:[[error userInfo] objectForKey:@"error_message"] forKey:@"error_msg"];
  3177. }
  3178. }
  3179. else if ([[error userInfo] objectForKey:@"user_data"])
  3180. {
  3181. NSDictionary *error_data = [[error userInfo] objectForKey:@"user_data"];
  3182. if ([error_data objectForKey:@"error"])
  3183. {
  3184. [errorDict setObject:[error_data objectForKey:@"error"] forKey:@"error_msg"];
  3185. }
  3186. if ([error_data objectForKey:@"error_code"])
  3187. {
  3188. [errorDict setObject:[NSNumber numberWithInteger:[[error_data objectForKey:@"error_code"] integerValue]]
  3189. forKey:@"error_code"];
  3190. }
  3191. }
  3192. [resultDict setObject:errorDict forKey:@"res"];
  3193. }
  3194. if (state == SSDKResponseStateSuccess)
  3195. {
  3196. NSDictionary *userRawdata = [NSDictionary dictionaryWithDictionary:[user rawData]];
  3197. [resultDict setObject:userRawdata forKey:@"res"];
  3198. }
  3199. NSString *resultStr = [MOBFJson jsonStringFromObject:resultDict];
  3200. UnitySendMessage([observerStr UTF8String], "_Callback", [resultStr UTF8String]);
  3201. }];
  3202. }
  3203. void __iosShareSDKShareWithContentName(int reqID, int platType, void *contentName, void *customHashtable, void *observer)
  3204. {
  3205. SSDKPlatformType shareType = (SSDKPlatformType)platType;
  3206. NSString *contentNodeName = [NSString stringWithCString:contentName encoding:NSUTF8StringEncoding];
  3207. NSString *observerStr = [NSString stringWithCString:observer encoding:NSUTF8StringEncoding];
  3208. NSDictionary *customFields = nil;
  3209. if (customHashtable)
  3210. {
  3211. customFields = __parseWithHashtable(customHashtable);
  3212. }
  3213. [ShareSDK shareWithContentName:contentNodeName
  3214. platform:shareType
  3215. customFields:customFields
  3216. onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) {
  3217. NSMutableDictionary *resultDict = [NSMutableDictionary dictionary];
  3218. [resultDict setObject:[NSNumber numberWithInteger:9] forKey:@"action"];
  3219. [resultDict setObject:[NSNumber numberWithInteger:state] forKey:@"status"];
  3220. [resultDict setObject:[NSNumber numberWithInteger:platType] forKey:@"platform"];
  3221. [resultDict setObject:[NSNumber numberWithInteger:reqID] forKey:@"reqID"];
  3222. if (state == SSDKResponseStateFail && error)
  3223. {
  3224. NSMutableDictionary *errorDict = [NSMutableDictionary dictionary];
  3225. [errorDict setObject:[NSNumber numberWithInteger:[error code]] forKey:@"error_code"];
  3226. if ([[error userInfo] objectForKey:@"error_message"])
  3227. {
  3228. if ([[error userInfo] objectForKey:@"error_message"])
  3229. {
  3230. [errorDict setObject:[[error userInfo] objectForKey:@"error_message"]
  3231. forKey:@"error_msg"];
  3232. }
  3233. }
  3234. else if ([[error userInfo] objectForKey:@"user_data"])
  3235. {
  3236. NSDictionary *error_data = [[error userInfo] objectForKey:@"user_data"];
  3237. if ([error_data objectForKey:@"error"])
  3238. {
  3239. [errorDict setObject:[error_data objectForKey:@"error"] forKey:@"error_msg"];
  3240. }
  3241. if ([error_data objectForKey:@"error_code"])
  3242. {
  3243. [errorDict setObject:[NSNumber numberWithInteger:[[error_data objectForKey:@"error_code"] integerValue]]
  3244. forKey:@"error_code"];
  3245. }
  3246. }
  3247. else if([[error userInfo] objectForKey:@"error_msg"])
  3248. {
  3249. if ([[error userInfo] objectForKey:@"error_msg"])
  3250. {
  3251. [errorDict setObject:[[error userInfo] objectForKey:@"error_msg"]
  3252. forKey:@"error_msg"];
  3253. }
  3254. }
  3255. [resultDict setObject:errorDict forKey:@"res"];
  3256. }
  3257. if (state == SSDKResponseStateSuccess)
  3258. {
  3259. if ([contentEntity rawData])
  3260. {
  3261. [resultDict setObject:[contentEntity rawData] forKey:@"res"];
  3262. }
  3263. }
  3264. NSString *resultStr = [MOBFJson jsonStringFromObject:resultDict];
  3265. UnitySendMessage([observerStr UTF8String], "_Callback", [resultStr UTF8String]);
  3266. }];
  3267. }
  3268. void __iosShareSDKShowShareMenuWithContentName(int reqID, void *contentName, void *customHashtable, void *platTypes, int x, int y, void *observer)
  3269. {
  3270. NSString *contentNodeName = [NSString stringWithCString:contentName encoding:NSUTF8StringEncoding];
  3271. NSDictionary *customFields = nil;
  3272. if (customHashtable)
  3273. {
  3274. customFields = __parseWithHashtable(customHashtable);
  3275. }
  3276. NSArray *platTypesArr = nil;
  3277. NSMutableArray *actionSheetItems = [NSMutableArray array];
  3278. NSString *observerStr = nil;
  3279. observerStr = [NSString stringWithCString:observer encoding:NSUTF8StringEncoding];
  3280. if (platTypes)
  3281. {
  3282. NSString *platTypesStr = [NSString stringWithCString:platTypes encoding:NSUTF8StringEncoding];
  3283. platTypesArr = [MOBFJson objectFromJSONString:platTypesStr];
  3284. }
  3285. else
  3286. {
  3287. platTypesArr = [ShareSDK activePlatforms];
  3288. for (id obj in platTypesArr)
  3289. {
  3290. NSInteger platformInterger = [obj integerValue];
  3291. [actionSheetItems addObject:[NSNumber numberWithInteger:platformInterger]];
  3292. }
  3293. platTypesArr = [actionSheetItems mutableCopy];
  3294. }
  3295. if ([MOBFDevice isPad])
  3296. {
  3297. if (!_refView)
  3298. {
  3299. _refView = [[UIView alloc] initWithFrame:CGRectMake(x, y, 10, 10)];
  3300. }
  3301. [[UIApplication sharedApplication].keyWindow.rootViewController.view addSubview:_refView];
  3302. }
  3303. [ShareSDK showShareActionSheet:_refView
  3304. items:platTypesArr
  3305. contentName:contentNodeName
  3306. customFields:customFields
  3307. onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {
  3308. NSMutableDictionary *resultDict = [NSMutableDictionary dictionary];
  3309. [resultDict setObject:[NSNumber numberWithInteger:9] forKey:@"action"];
  3310. [resultDict setObject:[NSNumber numberWithInteger:state] forKey:@"status"];
  3311. [resultDict setObject:[NSNumber numberWithInteger:platformType] forKey:@"platform"];
  3312. [resultDict setObject:[NSNumber numberWithInteger:reqID] forKey:@"reqID"];
  3313. if (state == SSDKResponseStateFail && error)
  3314. {
  3315. NSMutableDictionary *errorDict = [NSMutableDictionary dictionary];
  3316. [errorDict setObject:[NSNumber numberWithInteger:[error code]] forKey:@"error_code"];
  3317. if ([[error userInfo] objectForKey:@"error_message"])
  3318. {
  3319. if ([[error userInfo] objectForKey:@"error_message"])
  3320. {
  3321. [errorDict setObject:[[error userInfo] objectForKey:@"error_message"]
  3322. forKey:@"error_msg"];
  3323. }
  3324. }
  3325. else if ([[error userInfo] objectForKey:@"user_data"])
  3326. {
  3327. NSDictionary *error_data = [[error userInfo] objectForKey:@"user_data"];
  3328. if ([error_data objectForKey:@"error"])
  3329. {
  3330. [errorDict setObject:[error_data objectForKey:@"error"]
  3331. forKey:@"error_msg"];
  3332. }
  3333. else if ([error_data objectForKey:@"error_message"])
  3334. {
  3335. [errorDict setObject:[error_data objectForKey:@"error_message"]
  3336. forKey:@"error_msg"];
  3337. }
  3338. if ([error_data objectForKey:@"error_code"])
  3339. {
  3340. [errorDict setObject:[NSNumber numberWithInteger:[[error_data objectForKey:@"error_code"] integerValue]]
  3341. forKey:@"error_code"];
  3342. }
  3343. }
  3344. [resultDict setObject:errorDict forKey:@"res"];
  3345. }
  3346. if (state == SSDKResponseStateSuccess)
  3347. {
  3348. if ([contentEntity rawData])
  3349. {
  3350. [resultDict setObject:[contentEntity rawData] forKey:@"res"];
  3351. }
  3352. }
  3353. NSString *resultStr = [MOBFJson jsonStringFromObject:resultDict];
  3354. UnitySendMessage([observerStr UTF8String], "_Callback", [resultStr UTF8String]);
  3355. if (_refView)
  3356. {
  3357. //移除视图
  3358. [_refView removeFromSuperview];
  3359. }
  3360. }];
  3361. }
  3362. void __iosShareSDKShowShareViewWithContentName(int reqID, int platType, void *contentName, void *customHashtable, void *observer)
  3363. {
  3364. SSDKPlatformType shareType = (SSDKPlatformType)platType;
  3365. NSString *contentNodeName = [NSString stringWithCString:contentName encoding:NSUTF8StringEncoding];
  3366. NSString *observerStr = [NSString stringWithCString:observer encoding:NSUTF8StringEncoding];
  3367. NSDictionary *customFields = nil;
  3368. if (customHashtable)
  3369. {
  3370. customFields = __parseWithHashtable(customHashtable);
  3371. }
  3372. [ShareSDK showShareEditor:shareType
  3373. otherPlatformTypes:nil
  3374. contentName:contentNodeName
  3375. customFields:customFields
  3376. onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {
  3377. NSMutableDictionary *resultDict = [NSMutableDictionary dictionary];
  3378. [resultDict setObject:[NSNumber numberWithInteger:9] forKey:@"action"];
  3379. [resultDict setObject:[NSNumber numberWithInteger:state] forKey:@"status"];
  3380. [resultDict setObject:[NSNumber numberWithInteger:platformType] forKey:@"platform"];
  3381. [resultDict setObject:[NSNumber numberWithInteger:reqID] forKey:@"reqID"];
  3382. if (state == SSDKResponseStateFail && error)
  3383. {
  3384. NSMutableDictionary *errorDict = [NSMutableDictionary dictionary];
  3385. [errorDict setObject:[NSNumber numberWithInteger:[error code]] forKey:@"error_code"];
  3386. if ([[error userInfo] objectForKey:@"error_message"])
  3387. {
  3388. if ([[error userInfo] objectForKey:@"error_message"])
  3389. {
  3390. [errorDict setObject:[[error userInfo] objectForKey:@"error_message"] forKey:@"error_msg"];
  3391. }
  3392. }
  3393. else if ([[error userInfo] objectForKey:@"user_data"])
  3394. {
  3395. NSDictionary *error_data = [[error userInfo] objectForKey:@"user_data"];
  3396. if ([error_data objectForKey:@"error"])
  3397. {
  3398. [errorDict setObject:[error_data objectForKey:@"error"] forKey:@"error_msg"];
  3399. }
  3400. if ([error_data objectForKey:@"error_code"])
  3401. {
  3402. [errorDict setObject:[NSNumber numberWithInteger:[[error_data objectForKey:@"error_code"] integerValue]] forKey:@"error_code"];
  3403. }
  3404. }
  3405. [resultDict setObject:errorDict forKey:@"res"];
  3406. }
  3407. if (state == SSDKResponseStateSuccess)
  3408. {
  3409. if ([contentEntity rawData])
  3410. {
  3411. [resultDict setObject:[contentEntity rawData] forKey:@"res"];
  3412. }
  3413. }
  3414. NSString *resultStr = [MOBFJson jsonStringFromObject:resultDict];
  3415. UnitySendMessage([observerStr UTF8String], "_Callback", [resultStr UTF8String]);
  3416. }];
  3417. }
  3418. #if defined (__cplusplus)
  3419. }
  3420. #endif
  3421. @implementation ShareSDKUnity3DBridge
  3422. @end