miduo_client/Assets/Plugins/iOS/ShareSDKUnity3DBridge.m

3859 lines
182 KiB
Objective-C
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

//
// ShareSDKUnity3DBridge.m
// Unity-iPhone
//
// Created by 陈 剑东 on 15/7/28.
// Copyright (c) 2015年 mob. All rights reserved.
//
#import "ShareSDKUnity3DBridge.h"
#import <ShareSDK/ShareSDK.h>
#import <ShareSDK/ShareSDK+Base.h>
#import <ShareSDKExtension/ShareSDK+Extension.h>
#import <ShareSDKExtension/SSDKFriendsPaging.h>
#import <ShareSDKUI/ShareSDK+SSUI.h>
#import <ShareSDKExtension/SSEShareHelper.h>
#import <ShareSDKConnector/ShareSDKConnector.h>
#import <ShareSDKConfigFile/ShareSDK+XML.h>
#import <MOBFoundation/MOBFJson.h>
#import <MOBFoundation/MOBFRegex.h>
#import <MOBFoundation/MOBFDevice.h>
#define __SHARESDK_WECHAT__
//#define __SHARESDK_QQ__
//#define __SHARESDK_SINA_WEIBO__
//#define __SHARESDK_RENREN__
//#define __SHARESDK_KAKAO__
//#define __SHARESDK_YIXIN__
//#define __SHARESDK_FACEBOOK_MSG__
//#define __SHARESDK_ALIPAYSOCIAL__
//#define __SHARESDK_DINGTALK__
//#define __SHARESDK_MEIPAI__
#ifdef __SHARESDK_WECHAT__
#import "WXApi.h"
#endif
#ifdef __SHARESDK_QQ__
#import <TencentOpenAPI/TencentOAuth.h>
#import <TencentOpenAPI/QQApiInterface.h>
#endif
#ifdef __SHARESDK_SINA_WEIBO__
#import "WeiboSDK.h"
#endif
#ifdef __SHARESDK_RENREN__
#import <RennSDK/RennSDK.h>
#endif
#ifdef __SHARESDK_KAKAO__
#import <KakaoOpenSDK/KakaoOpenSDK.h>
#endif
#ifdef __SHARESDK_YIXIN__
#import "YXApi.h"
#endif
#ifdef __SHARESDK_FACEBOOK_MSG__
#import <FBSDKMessengerShareKit/FBSDKMessengerShareKit.h>
#endif
#ifdef __SHARESDK_ALIPAYSOCIAL__
#import "APOpenAPI.h"
#endif
#ifdef __SHARESDK_DINGTALK__
#import <DTShareKit/DTOpenAPI.h>
#endif
#ifdef __SHARESDK_MEIPAI__
#import <MPShareSDK/MPShareSDK.h>
#endif
static UIView *_refView = nil;
#if defined (__cplusplus)
extern "C" {
#endif
/**
* @brief 配置SDK并初始化
*
* @param appKey ShareSDK的AppKey
* @param configInfo 配置信息
*/
extern void __iosShareSDKRegisterAppAndSetPltformsConfig (void *appKey, void*configInfo);
/**
* 用户授权
*
* @param reqID 流水号
* @param platType 平台类型
* @param observer 观察回调对象名称
*/
extern void __iosShareSDKAuthorize (int reqID, int platType, void *observer);
/**
* @brief 取消用户授权
*
* @param platType 平台类型
*/
extern void __iosShareSDKCancelAuthorize (int platType);
/**
* @brief 判断用户是否授权
*
* @param platType 平台类型
*
* @return YES 表示已经授权NO 表示尚未授权
*/
extern bool __iosShareSDKHasAuthorized (int platType);
/**
* @brief 检测是否安装客户端
*
* @param platType 平台类型
*
* @return YES 表示已经安装NO 表示尚未安装
*/
extern bool __iosShareSDKIsClientInstalled (int platType);
/**
* @brief 获取用户信息
*
* @param reqID 流水号
* @param platType 平台类型
* @param observer 观察回调对象名称
*/
extern void __iosShareSDKGetUserInfo (int reqID, int platType, void *observer);
/**
* @brief 分享内容
*
* @param reqID 流水号
* @param platType 平台类型
* @param content 分享内容
* @param observer 观察回调对象名称
*/
extern void __iosShareSDKShare (int reqID, int platType, void *content, void *observer);
/**
* @brief 一键分享内容
*
* @param reqID 流水号
* @param platTypes 平台类型列表
* @param content 分享内容
* @param observer 观察回调对象名称
*/
extern void __iosShareSDKOneKeyShare (int reqID, void *platTypes, void *content, void *observer);
/**
* @brief 显示分享菜单
*
* @param reqID 流水号
* @param platTypes 平台类型列表
* @param content 分享内容
* @param x 弹出菜单的箭头的横坐标仅用于iPad
* @param y 弹出菜单的箭头的纵坐标仅用于iPad
* @param observer 观察回调对象名称
*/
extern void __iosShareSDKShowShareMenu (int reqID, void *platTypes, void *content, int x, int y, void *observer);
/**
* @brief 显示分享编辑界面
*
* @param reqID 流水号
* @param platType 平台类型
* @param content 分享内容
* @param observer 观察回调对象名称
*/
extern void __iosShareSDKShowShareView (int reqID, int platType, void *content, void *observer);
/**
* @brief 获取授权用户好友列表
*
* @param reqID 流水号
* @param platType 平台类型
* @param count 单页好友数量
* @param page 页码/游标cusor
* @param observer 观察回调对象名称
*/
extern void __iosShareSDKGetFriendsList (int reqID, int platType, int count , int page, void *observer);
/**
* @brief 获取授权信息
*
* @param platType 平台类型
* @param observer 观察回调对象名称
*/
extern const char* __iosShareSDKGetCredential (int platType);
/**
* @brief 关注/添加好友
*
* @param platType 平台类型
* @param observer 观察回调对象名称
*/
extern void __iosShareSDKFollowFriend (int reqID, int platType, void *account, void *observer);
/**
* @brief 根据配置文件分享
*
* @param reqID 流水号
* @param contentName 配置文件节点标识
* @param customHashtable 自定义字段表
* @param platType 平台类型
* @param observer 观察回调对象名称
*/
extern void __iosShareSDKShareWithContentName(int reqID,
int platType,
void *contentName,
void *customHashtable,
void *observer);
/**
* @brief 根据配置文件展示分享菜单
*
* @param reqID 流水号
* @param contentName 配置文件节点标识
* @param customHashtable 自定义字段表
* @param platTypes 平台类型列表
* @param x 弹出菜单的箭头的横坐标仅用于iPad
* @param y 弹出菜单的箭头的纵坐标仅用于iPad
* @param observer 观察回调对象名称
*/
extern void __iosShareSDKShowShareMenuWithContentName(int reqID,
void *contentName,
void *customHashtable,
void *platTypes,
int x,
int y,
void *observer);
/**
* @brief 根据配置文件展示分享编辑界面
*
* @param reqID 流水号
* @param contentName 配置文件节点标识
* @param customHashtable 自定义字段表
* @param platType 平台类型
* @param observer 观察回调对象名称
*/
extern void __iosShareSDKShowShareViewWithContentName(int reqID,
int platType,
void *contentName,
void *customHashtable,
void *observer);
#if defined (__cplusplus)
}
#endif
#if defined (__cplusplus)
extern "C" {
#endif
NSMutableDictionary *__parseWithHashtable (void*configInfo)
{
NSString *confCs = [NSString stringWithCString:configInfo encoding:NSUTF8StringEncoding];
NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithDictionary:[MOBFJson objectFromJSONString:confCs]];
return dic;
}
SSDKPlatformType __convertContentType(NSInteger type)
{
switch (type)
{
case 0:
return SSDKContentTypeAuto;
case 1:
return SSDKContentTypeText;
case 2:
return SSDKContentTypeImage;
case 4:
return SSDKContentTypeWebPage;
case 5:
return SSDKContentTypeAudio;
case 6:
return SSDKContentTypeVideo;
case 7:
return SSDKContentTypeApp;
case 8:
return SSDKContentTypeFile;
case 9:
return SSDKContentTypeImage;
default:
return SSDKContentTypeText;
}
}
void __setWechatParams(NSDictionary *value,NSMutableDictionary *params,SSDKPlatformType subType)
{
NSString *text = nil;
NSString *title = nil;
NSString *url = nil;
NSString *thumbImg = nil;
NSString *image = nil;
NSString *musicFileUrl = nil;
NSString *extInfo = nil;
NSData *fileData = nil;
NSData *emoData = nil;
NSString *sourceFileExtension = nil;
NSData *sourceFileData = nil;
SSDKContentType type = SSDKContentTypeText;
if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
{
text = [value objectForKey:@"text"];
}
if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
{
title = [value objectForKey:@"title"];
}
if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
{
url = [value objectForKey:@"url"];
}
if ([[value objectForKey:@"thumbImageUrl"] isKindOfClass:[NSString class]])
{
thumbImg = [value objectForKey:@"thumbImageUrl"];
}
if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
{
image = [value objectForKey:@"imageUrl"];
}
if ([[value objectForKey:@"musicUrl"] isKindOfClass:[NSString class]])
{
musicFileUrl = [value objectForKey:@"musicUrl"];
}
if ([[value objectForKey:@"extInfoPath"] isKindOfClass:[NSString class]])
{
extInfo = [value objectForKey:@"extInfoPath"];
}
if ([[value objectForKey:@"filePath"] isKindOfClass:[NSString class]])
{
fileData = [NSData dataWithContentsOfFile:[value objectForKey:@"filePath"]];
}
if ([[value objectForKey:@"emotionPath"] isKindOfClass:[NSString class]])
{
emoData = [NSData dataWithContentsOfFile:[value objectForKey:@"emotionPath"]];
}
if ([[value objectForKey:@"sourceFileExtension"] isKindOfClass:[NSString class]])
{
sourceFileExtension = [value objectForKey:@"sourceFileExtension"];
}
if ([[value objectForKey:@"sourceFilePath"] isKindOfClass:[NSString class]])
{
sourceFileData = [NSData dataWithContentsOfFile:[value objectForKey:@"sourceFilePath"]];
}
if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
{
type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
}
[params SSDKSetupWeChatParamsByText:text
title:title
url:[NSURL URLWithString:url]
thumbImage:thumbImg
image:image
musicFileURL:[NSURL URLWithString:musicFileUrl]
extInfo:extInfo
fileData:fileData
emoticonData:emoData
sourceFileExtension:sourceFileExtension
sourceFileData:sourceFileData
type:type
forPlatformSubType:subType];
}
void __setQQParams(NSDictionary *value,NSMutableDictionary *params,SSDKPlatformType subType)
{
NSString *text = nil;
NSString *title = nil;
NSString *url = nil;
NSString *thumbImg = nil;
NSString *image = nil;
SSDKContentType type = SSDKContentTypeText;
if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
{
text = [value objectForKey:@"text"];
}
if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
{
title = [value objectForKey:@"title"];
}
if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
{
url = [value objectForKey:@"url"];
}
if ([[value objectForKey:@"thumbImageUrl"] isKindOfClass:[NSString class]])
{
thumbImg = [value objectForKey:@"thumbImageUrl"];
}
if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
{
image = [value objectForKey:@"imageUrl"];
}
if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
{
type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
}
[params SSDKSetupQQParamsByText:text
title:title
url:[NSURL URLWithString:url]
thumbImage:thumbImg
image:image
type:type
forPlatformSubType:subType];
}
void __setYixinParams(NSDictionary *value,NSMutableDictionary *params,SSDKPlatformType subType)
{
NSString *text = nil;
NSString *title = nil;
NSString *url = nil;
NSString *thumbImg = nil;
NSString *image = nil;
NSString *musicFileURL = nil;
NSString *extInfo = nil;
NSString *fileDataPath = nil;
NSString *comment = nil;
NSString *toUserId = nil;
SSDKContentType type = SSDKContentTypeText;
if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
{
text = [value objectForKey:@"text"];
}
if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
{
title = [value objectForKey:@"title"];
}
if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
{
url = [value objectForKey:@"url"];
}
if ([[value objectForKey:@"thumbImageUrl"] isKindOfClass:[NSString class]])
{
thumbImg = [value objectForKey:@"thumbImageUrl"];
}
if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
{
image = [value objectForKey:@"imageUrl"];
}
if ([[value objectForKey:@"musicUrl"] isKindOfClass:[NSString class]])
{
musicFileURL = [value objectForKey:@"musicUrl"];
}
if ([[value objectForKey:@"extInfoPath"] isKindOfClass:[NSString class]])
{
extInfo = [value objectForKey:@"extInfoPath"];
}
if ([[value objectForKey:@"filePath"] isKindOfClass:[NSString class]])
{
fileDataPath = [value objectForKey:@"filePath"];
}
if ([[value objectForKey:@"comment"] isKindOfClass:[NSString class]])
{
comment = [value objectForKey:@"comment"];
}
if ([[value objectForKey:@"toUserID"] isKindOfClass:[NSString class]])
{
toUserId = [value objectForKey:@"toUserID"];
}
if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
{
type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
}
[params SSDKSetupYiXinParamsByText:text
title:title
url:[NSURL URLWithString:url]
thumbImage:thumbImg
image:image
musicFileURL:[NSURL URLWithString:musicFileURL]
extInfo:extInfo
fileData:fileDataPath
comment:comment
toUserId:toUserId
type:type
forPlatformSubType:subType];
}
void __setKakaoParams(NSDictionary *value,NSMutableDictionary *params,SSDKPlatformType subType)
{
NSString *text = nil;
NSMutableArray *images = [NSMutableArray array];
NSString *title = nil;
NSString *url = nil;
NSString *permission = nil;
BOOL enableShare;
CGFloat imageWidth;
CGFloat imageHeight;
NSString *appButtonTitle = nil;
NSDictionary *androidExecParam = nil;
NSString *androidMarkParam = nil;
NSDictionary *iphoneExecParams = nil;
NSString *iphoneMarkParam = nil;
NSDictionary *ipadExecParams = nil;
NSString *ipadMarkParam = nil;
SSDKContentType type = SSDKContentTypeText;
if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
{
text = [value objectForKey:@"text"];
}
if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
{
NSString *imgPath = [value objectForKey:@"imageUrl"];
SSDKImage *image = nil;
if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
options:MOBFRegexOptionsNoOptions
inRange:NSMakeRange(0, imgPath.length)
withString:imgPath])
{
image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:imgPath]];
}
else
{
UIImage *localImg = [UIImage imageWithContentsOfFile:imgPath];
image = [[SSDKImage alloc] initWithImage:localImg
format:SSDKImageFormatJpeg
settings:nil];
}
if (image)
{
[images addObject:imgPath];
}
else
{
NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
}
}
else if([[value objectForKey:@"imageUrl"] isKindOfClass:[NSArray class]])
{
NSArray *paths = [value objectForKey:@"imageUrl"];
for (NSString *path in paths)
{
SSDKImage *image = nil;
if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
options:MOBFRegexOptionsNoOptions
inRange:NSMakeRange(0, path.length)
withString:path])
{
image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:path]];
}
else
{
UIImage *localImg = [UIImage imageWithContentsOfFile:path];
image = [[SSDKImage alloc] initWithImage:localImg
format:SSDKImageFormatJpeg
settings:nil];
}
if (image)
{
[images addObject:path];
}
else
{
NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
}
}
}
if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
{
title = [value objectForKey:@"title"];
}
if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
{
url = [value objectForKey:@"url"];
}
if ([[value objectForKey:@"permission"] isKindOfClass:[NSString class]])
{
permission = [value objectForKey:@"permission"];
}
if ([[value objectForKey:@"enableShare"] boolValue])
{
enableShare = YES;
}
if ([[value objectForKey:@"imageWidth"] isKindOfClass:[NSNumber class]])
{
imageWidth = [[value objectForKey:@"imageWidth"] floatValue];
}
if ([[value objectForKey:@"imageHeight"] isKindOfClass:[NSNumber class]])
{
imageHeight = [[value objectForKey:@"imageHeight"] floatValue];
}
if ([[value objectForKey:@"appButtonTitle"] isKindOfClass:[NSString class]])
{
appButtonTitle = [value objectForKey:@"appButtonTitle"];
}
if ([[value objectForKey:@"androidExecParam"] isKindOfClass:[NSDictionary class]])
{
androidExecParam = [value objectForKey:@"androidExecParam"];
}
if ([[value objectForKey:@"androidMarkParam"] isKindOfClass:[NSString class]])
{
androidMarkParam = [value objectForKey:@"androidMarkParam"];
}
if ([[value objectForKey:@"iphoneExecParam"] isKindOfClass:[NSDictionary class]])
{
iphoneExecParams = [value objectForKey:@"iphoneExecParam"];
}
if ([[value objectForKey:@"iphoneMarkParam"] isKindOfClass:[NSString class]])
{
iphoneMarkParam = [value objectForKey:@"iphoneMarkParam"];
}
if ([[value objectForKey:@"ipadExecParam"] isKindOfClass:[NSDictionary class]])
{
ipadExecParams = [value objectForKey:@"ipadExecParam"];
}
if ([[value objectForKey:@"ipadMarkParam"] isKindOfClass:[NSString class]])
{
ipadMarkParam = [value objectForKey:@"ipadMarkParam"];
}
if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
{
type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
}
[params SSDKSetupKaKaoParamsByText:text
images:images
title:title
url:[NSURL URLWithString:url]
permission:permission
enableShare:enableShare
imageSize:CGSizeMake(imageWidth, imageHeight)
appButtonTitle:appButtonTitle
androidExecParam:androidExecParam
androidMarkParam:androidMarkParam
iphoneExecParams:iphoneExecParams
iphoneMarkParam:iphoneMarkParam
ipadExecParams:ipadExecParams
ipadMarkParam:ipadMarkParam
type:type
forPlatformSubType:subType];
}
NSMutableDictionary *__getShareParamsWithString(NSString *dataStr)
{
NSMutableDictionary *params = [NSMutableDictionary dictionary];
NSMutableArray *imageArray = [NSMutableArray array];
NSString *text = nil;
NSString *title = nil;
NSString *url = nil;
SSDKContentType type = SSDKContentTypeText;
NSDictionary *shareParamsDic = [MOBFJson objectFromJSONString:dataStr];
if (shareParamsDic)
{
if ([[shareParamsDic objectForKey:@"text"] isKindOfClass:[NSString class]])
{
text = [shareParamsDic objectForKey:@"text"];
}
id img = [shareParamsDic objectForKey:@"imageUrl"];
if ([img isKindOfClass:[NSString class]])
{
NSString *imgPath = img;
SSDKImage *image = nil;
if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
options:MOBFRegexOptionsNoOptions
inRange:NSMakeRange(0, imgPath.length)
withString:imgPath])
{
image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:imgPath]];
}
else
{
UIImage *localImg = [UIImage imageWithContentsOfFile:imgPath];
image = [[SSDKImage alloc] initWithImage:localImg
format:SSDKImageFormatJpeg
settings:nil];
}
if (image)
{
[imageArray addObject:imgPath];
}
else
{
NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
}
}
else if([img isKindOfClass:[NSArray class]])
{
NSArray *paths = [img copy];
for (NSString *path in paths)
{
SSDKImage *image = nil;
if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
options:MOBFRegexOptionsNoOptions
inRange:NSMakeRange(0, path.length)
withString:path])
{
image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:path]];
}
else
{
UIImage *localImg = [UIImage imageWithContentsOfFile:path];
image = [[SSDKImage alloc] initWithImage:localImg
format:SSDKImageFormatJpeg
settings:nil];
}
if (image)
{
[imageArray addObject:path];
}
else
{
NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
}
}
}
if ([[shareParamsDic objectForKey:@"title"] isKindOfClass:[NSString class]])
{
title = [shareParamsDic objectForKey:@"title"];
}
if ([[shareParamsDic objectForKey:@"url"] isKindOfClass:[NSString class]])
{
url = [shareParamsDic objectForKey:@"url"];
}
if ([[shareParamsDic objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
{
type = __convertContentType([[shareParamsDic objectForKey:@"shareType"] integerValue]);
}
if ([[shareParamsDic objectForKey:@"clientShare"] isKindOfClass:[NSNumber class]])
{
NSInteger enable = [[shareParamsDic objectForKey:@"clientShare"] integerValue];
if (enable > 0)
{
[params SSDKEnableUseClientShare];
}
}
if ([[shareParamsDic objectForKey:@"advancedShare"] isKindOfClass:[NSNumber class]])
{
NSInteger enable = [[shareParamsDic objectForKey:@"advancedShare"] integerValue];
if (enable > 0)
{
[params SSDKEnableAdvancedInterfaceShare];
}
}
[params SSDKSetupShareParamsByText:text
images:imageArray
url:[NSURL URLWithString:url]
title:title
type:type];
NSDictionary *customizeShareParams = [shareParamsDic objectForKey:@"customizeShareParams"];
if (customizeShareParams && [[customizeShareParams allKeys] count] > 0)
{
//新浪微博
id value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeSinaWeibo]]];
if ([value isKindOfClass:[NSDictionary class]])
{
NSString *text = nil;
NSString *title = nil;
NSString *image = nil;
NSString *url = nil;
double lat = 0;
double lng = 0;
NSString *objID = nil;
SSDKContentType type = SSDKContentTypeWebPage;
if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
{
text = [value objectForKey:@"text"];
}
if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
{
title = [value objectForKey:@"title"];
}
if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
{
image = [value objectForKey:@"imageUrl"];
}
if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
{
url = [value objectForKey:@"url"];
}
if ([[value objectForKey:@"latitude"] isKindOfClass:[NSString class]])
{
lat = [[value objectForKey:@"latitude"] doubleValue];
}
if ([[value objectForKey:@"longitude"] isKindOfClass:[NSString class]])
{
lng = [[value objectForKey:@"longitude"] doubleValue];
}
if ([[value objectForKey:@"objectID"] isKindOfClass:[NSString class]])
{
objID = [value objectForKey:@"objectID"];
}
if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
{
type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
}
if ([[value objectForKey:@"clientShare"] isKindOfClass:[NSNumber class]])
{
NSInteger enable = [[value objectForKey:@"clientShare"] integerValue];
if (enable > 0)
{
[params SSDKEnableUseClientShare];
}
}
if ([[value objectForKey:@"advancedShare"] isKindOfClass:[NSNumber class]])
{
NSInteger enable = [[value objectForKey:@"advancedShare"] integerValue];
if (enable > 0)
{
[params SSDKEnableAdvancedInterfaceShare];
}
}
[params SSDKSetupSinaWeiboShareParamsByText:text
title:title
image:image
url:[NSURL URLWithString:url]
latitude:lat
longitude:lng
objectID:objID
type:type];
}
//腾讯微博
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeTencentWeibo]]];
if ([value isKindOfClass:[NSDictionary class]])
{
NSString *text = nil;
NSMutableArray *images = [NSMutableArray array];
double lat;
double lng;
SSDKContentType type = SSDKContentTypeImage;
if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
{
text = [value objectForKey:@"text"];
}
if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
{
NSString *imgPath = [value objectForKey:@"imageUrl"];
SSDKImage *image = nil;
if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
options:MOBFRegexOptionsNoOptions
inRange:NSMakeRange(0, imgPath.length)
withString:imgPath])
{
image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:imgPath]];
}
else
{
UIImage *localImg = [UIImage imageWithContentsOfFile:imgPath];
image = [[SSDKImage alloc]initWithImage:localImg
format:SSDKImageFormatJpeg
settings:nil];
}
if (image)
{
[images addObject:imgPath];
}
else
{
NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
}
}
else if([[value objectForKey:@"imageUrl"] isKindOfClass:[NSArray class]])
{
NSArray *paths = [value objectForKey:@"imageUrl"];
for (NSString *path in paths)
{
SSDKImage *image = nil;
if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
options:MOBFRegexOptionsNoOptions
inRange:NSMakeRange(0, path.length)
withString:path])
{
image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:path]];
}
else
{
UIImage *localImg = [UIImage imageWithContentsOfFile:path];
image = [[SSDKImage alloc] initWithImage:localImg
format:SSDKImageFormatJpeg
settings:nil];
}
if (image)
{
[images addObject:path];
}
else
{
NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
}
}
}
if ([[value objectForKey:@"latitude"] isKindOfClass:[NSNumber class]])
{
lat = [[value objectForKey:@"latitude"] doubleValue];
}
if ([[value objectForKey:@"longitude"] isKindOfClass:[NSNumber class]])
{
lng = [[value objectForKey:@"longitude"] doubleValue];
}
if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
{
type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
}
[params SSDKSetupTencentWeiboShareParamsByText:text
images:images
latitude:lat
longitude:lng
type:type];
}
//豆瓣
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeDouBan]]];
if ([value isKindOfClass:[NSDictionary class]])
{
NSString *text = nil;
NSString *image = nil;
NSString *title = nil;
NSString *url = nil;
NSString *urlDesc = nil;
SSDKContentType type = SSDKContentTypeText;
if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
{
text = [value objectForKey:@"text"];
}
if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
{
image = [value objectForKey:@"imageUrl"];
}
if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
{
title = [value objectForKey:@"title"];
}
if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
{
url = [value objectForKey:@"url"];
}
if ([[value objectForKey:@"urlDescription"] isKindOfClass:[NSString class]])
{
urlDesc = [value objectForKey:@"urlDescription"];
}
if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
{
type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
}
[params SSDKSetupDouBanParamsByText:text
image:image
title:title
url:[NSURL URLWithString:url]
urlDesc:urlDesc
type:type];
}
//QQ系列
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformSubTypeQQFriend]]];
if ([value isKindOfClass:[NSDictionary class]])
{
__setQQParams(value,params,SSDKPlatformSubTypeQQFriend);
}
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformSubTypeQZone]]];
if ([value isKindOfClass:[NSDictionary class]])
{
__setQQParams(value,params,SSDKPlatformSubTypeQZone);
}
//微信系列
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformSubTypeWechatSession]]];
if ([value isKindOfClass:[NSDictionary class]])
{
__setWechatParams(value,params,SSDKPlatformSubTypeWechatSession);
}
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformSubTypeWechatTimeline]]];
if ([value isKindOfClass:[NSDictionary class]])
{
__setWechatParams(value,params,SSDKPlatformSubTypeWechatTimeline);
}
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformSubTypeWechatFav]]];
if ([value isKindOfClass:[NSDictionary class]])
{
__setWechatParams(value,params,SSDKPlatformSubTypeWechatFav);
}
//人人网
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeRenren]]];
if ([value isKindOfClass:[NSDictionary class]])
{
NSString *text = nil;
NSString *image = nil;
NSString *url = nil;
NSString *albumId = nil;
SSDKContentType type = SSDKContentTypeImage;
if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
{
text = [value objectForKey:@"text"];
}
if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
{
image = [value objectForKey:@"imageUrl"];
}
if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
{
url = [value objectForKey:@"url"];
}
if ([[value objectForKey:@"albumID"] isKindOfClass:[NSString class]])
{
albumId = [value objectForKey:@"albumID"];
}
if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
{
type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
}
[params SSDKSetupRenRenParamsByText:text
image:image
url:[NSURL URLWithString:url]
albumId:albumId
type:type];
}
//开心网
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeKaixin]]];
if ([value isKindOfClass:[NSDictionary class]])
{
NSString *text = nil;
NSString *image = nil;
SSDKContentType type = SSDKContentTypeText;
if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
{
text = [value objectForKey:@"text"];
}
if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
{
image = [value objectForKey:@"imageUrl"];
}
if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
{
type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
}
[params SSDKSetupKaiXinParamsByText:text
image:image
type:type];
}
//Facebook
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeFacebook]]];
if ([value isKindOfClass:[NSDictionary class]])
{
NSString *text = nil;
NSString *image = nil;
NSString *title = nil;
NSString *urlDesc = nil;
NSString *attachmentPath = nil;
SSDKContentType type = SSDKContentTypeText;
if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
{
text = [value objectForKey:@"text"];
}
if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
{
image = [value objectForKey:@"imageUrl"];
}
if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
{
url = [value objectForKey:@"url"];
}
if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
{
title = [value objectForKey:@"title"];
}
if ([[value objectForKey:@"urlDescription"] isKindOfClass:[NSString class]])
{
urlDesc = [value objectForKey:@"urlDescription"];
}
if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
{
type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
}
if ([[value objectForKey:@"attachmentPath"] isKindOfClass:[NSString class]])
{
attachmentPath = [value objectForKey:@"attachmentPath"];
}
if ([[value objectForKey:@"clientShare"] isKindOfClass:[NSNumber class]])
{
NSInteger enable = [[value objectForKey:@"clientShare"] integerValue];
if (enable > 0)
{
[params SSDKEnableUseClientShare];
}
}
if ([[value objectForKey:@"advancedShare"] isKindOfClass:[NSNumber class]])
{
NSInteger enable = [[value objectForKey:@"advancedShare"] integerValue];
if (enable > 0)
{
[params SSDKEnableAdvancedInterfaceShare];
}
}
[params SSDKSetupFacebookParamsByText:text
image:image
url:[NSURL URLWithString:url]
urlTitle:title
urlName:urlDesc
attachementUrl:[NSURL URLWithString:attachmentPath]
type:type];
}
//Twitter
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeTwitter]]];
if ([value isKindOfClass:[NSDictionary class]])
{
NSString *text = nil;
NSMutableArray *images = [NSMutableArray array];
double lat;
double lng;
SSDKContentType type = SSDKContentTypeText;
if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
{
text = [value objectForKey:@"text"];
}
if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
{
NSString *imgPath = [value objectForKey:@"imageUrl"];
SSDKImage *image = nil;
if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
options:MOBFRegexOptionsNoOptions
inRange:NSMakeRange(0, imgPath.length)
withString:imgPath])
{
image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:imgPath]];
}
else
{
UIImage *localImg = [UIImage imageWithContentsOfFile:imgPath];
image = [[SSDKImage alloc] initWithImage:localImg
format:SSDKImageFormatJpeg
settings:nil];
}
if (image)
{
[images addObject:imgPath];
}
else
{
NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
}
}
else if([[value objectForKey:@"imageUrl"] isKindOfClass:[NSArray class]])
{
NSArray *paths = [value objectForKey:@"imageUrl"];
for (NSString *path in paths)
{
SSDKImage *image = nil;
if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
options:MOBFRegexOptionsNoOptions
inRange:NSMakeRange(0, path.length)
withString:path])
{
image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:path]];
}
else
{
UIImage *localImg = [UIImage imageWithContentsOfFile:path];
image = [[SSDKImage alloc] initWithImage:localImg
format:SSDKImageFormatJpeg
settings:nil];
}
if (image)
{
[images addObject:path];
}
else
{
NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
}
}
}
if ([[value objectForKey:@"latitude"] isKindOfClass:[NSNumber class]])
{
lat = [[value objectForKey:@"latitude"] doubleValue];
}
if ([[value objectForKey:@"longitude"] isKindOfClass:[NSNumber class]])
{
lng = [[value objectForKey:@"longitude"] doubleValue];
}
if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
{
type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
}
[params SSDKSetupTwitterParamsByText:text
images:images
latitude:lat
longitude:lng
type:type];
}
//YinXiang
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeYinXiang]]];
if ([value isKindOfClass:[NSDictionary class]])
{
NSString *text = nil;
NSString *title = nil;
NSMutableArray *images = [NSMutableArray array];
NSMutableArray *tags = [NSMutableArray array];
NSString *notebook = nil;
if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
{
text = [value objectForKey:@"text"];
}
if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
{
title = [value objectForKey:@"title"];
}
if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
{
NSString *imgPath = [value objectForKey:@"imageUrl"];
SSDKImage *image = nil;
if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
options:MOBFRegexOptionsNoOptions
inRange:NSMakeRange(0, imgPath.length)
withString:imgPath])
{
image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:imgPath]];
}
else
{
UIImage *localImg = [UIImage imageWithContentsOfFile:imgPath];
image = [[SSDKImage alloc] initWithImage:localImg
format:SSDKImageFormatJpeg
settings:nil];
}
if (image)
{
[images addObject:imgPath];
}
else
{
NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
}
}
else if([[value objectForKey:@"imageUrl"] isKindOfClass:[NSArray class]])
{
NSArray *paths = [value objectForKey:@"imageUrl"];
for (NSString *path in paths)
{
SSDKImage *image = nil;
if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
options:MOBFRegexOptionsNoOptions
inRange:NSMakeRange(0, path.length)
withString:path])
{
image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:path]];
}
else
{
UIImage *localImg = [UIImage imageWithContentsOfFile:path];
image = [[SSDKImage alloc] initWithImage:localImg
format:SSDKImageFormatJpeg
settings:nil];
}
if (image)
{
[images addObject:path];
}
else
{
NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
}
}
}
if ([[value objectForKey:@"notebook"] isKindOfClass:[NSString class]])
{
notebook = [value objectForKey:@"notebook"];
}
id tagValue = [value objectForKey:@"tags"];
if ([tagValue isKindOfClass:[NSString class]])
{
[tags addObject:tagValue];
}
else if ([tagValue isKindOfClass:[NSArray class]])
{
tags = [tagValue mutableCopy];
}
[params SSDKSetupEvernoteParamsByText:text
images:images
title:title
notebook:notebook
tags:tags
platformType:SSDKPlatformTypeYinXiang];
}
//GooglePlus
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeGooglePlus]]];
if ([value isKindOfClass:[NSDictionary class]])
{
NSString *text = nil;
NSString *url = nil;
SSDKContentType type = SSDKContentTypeText;
if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
{
text = [value objectForKey:@"text"];
}
if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
{
url = [value objectForKey:@"url"];
}
if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
{
type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
}
[params SSDKSetupGooglePlusParamsByText:text
url:[NSURL URLWithString:url]
type:type];
}
//Instagram
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeInstagram]]];
if ([value isKindOfClass:[NSDictionary class]])
{
NSString *image = nil;
CGFloat menuX;
CGFloat menuY;
if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
{
image = [value objectForKey:@"imageUrl"];
}
if ([[value objectForKey:@"menuX"] isKindOfClass:[NSString class]])
{
menuX = [[value objectForKey:@"menuX"] floatValue];
}
if ([[value objectForKey:@"menuY"] isKindOfClass:[NSString class]])
{
menuX = [[value objectForKey:@"menuY"] floatValue];
}
CGPoint point = CGPointMake(menuX, menuY);
[params SSDKSetupInstagramByImage:image menuDisplayPoint:point];
}
//LinkedIn
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeLinkedIn]]];
if ([value isKindOfClass:[NSDictionary class]])
{
NSString *text = nil;
NSString *image = nil;
NSString *title = nil;
NSString *url = nil;
NSString *urlDesc = nil;
NSString *visibility = nil;
SSDKContentType type = SSDKContentTypeText;
if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
{
text = [value objectForKey:@"text"];
}
if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
{
image = [value objectForKey:@"imageUrl"];
}
if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
{
title = [value objectForKey:@"title"];
}
if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
{
url = [value objectForKey:@"url"];
}
if ([[value objectForKey:@"urlDescription"] isKindOfClass:[NSString class]])
{
urlDesc = [value objectForKey:@"urlDescription"];
}
if ([[value objectForKey:@"visibility"] isKindOfClass:[NSString class]])
{
visibility = [value objectForKey:@"visibility"];
}
if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
{
type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
}
[params SSDKSetupLinkedInParamsByText:text
image:image
url:[NSURL URLWithString:url]
title:title
urlDesc:urlDesc
visibility:visibility
type:type];
}
//Tumblr
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeTumblr]]];
if ([value isKindOfClass:[NSDictionary class]])
{
NSString *text = nil;
NSString *image = nil;
NSString *title = nil;
NSString *url = nil;
NSString *blogName = nil;
SSDKContentType type = SSDKContentTypeText;
if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
{
text = [value objectForKey:@"text"];
}
if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
{
image = [value objectForKey:@"imageUrl"];
}
if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
{
title = [value objectForKey:@"title"];
}
if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
{
url = [value objectForKey:@"url"];
}
if ([[value objectForKey:@"blogName"] isKindOfClass:[NSString class]])
{
blogName = [value objectForKey:@"blogName"];
}
if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
{
type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
}
[params SSDKSetupTumblrParamsByText:text
image:image
url:[NSURL URLWithString:url]
title:title
blogName:blogName
type:type];
}
//Mail
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeMail]]];
if ([value isKindOfClass:[NSDictionary class]])
{
NSString *text = nil;
NSString *title = nil;
NSMutableArray *images = [NSMutableArray array];
NSMutableArray *attachments = [NSMutableArray array];
NSMutableArray *recipients = [NSMutableArray array];
NSMutableArray *ccRecipients = [NSMutableArray array];
NSMutableArray *bccRecipients = [NSMutableArray array];
SSDKContentType type = SSDKContentTypeText;
if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
{
text = [value objectForKey:@"text"];
}
if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
{
title = [value objectForKey:@"title"];
}
if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
{
NSString *imgPath = [value objectForKey:@"imageUrl"];
SSDKImage *image = nil;
if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
options:MOBFRegexOptionsNoOptions
inRange:NSMakeRange(0, imgPath.length)
withString:imgPath])
{
image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:imgPath]];
}
else
{
UIImage *localImg = [UIImage imageWithContentsOfFile:imgPath];
image = [[SSDKImage alloc] initWithImage:localImg
format:SSDKImageFormatJpeg
settings:nil];
}
if (image)
{
[images addObject:imgPath];
}
else
{
NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
}
}
else if([[value objectForKey:@"imageUrl"] isKindOfClass:[NSArray class]])
{
NSArray *paths = [value objectForKey:@"imageUrl"];
for (NSString *path in paths)
{
SSDKImage *image = nil;
if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
options:MOBFRegexOptionsNoOptions
inRange:NSMakeRange(0, path.length)
withString:path])
{
image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:path]];
}
else
{
UIImage *localImg = [UIImage imageWithContentsOfFile:path];
image = [[SSDKImage alloc] initWithImage:localImg
format:SSDKImageFormatJpeg
settings:nil];
}
if (image)
{
[images addObject:path];
}
else
{
NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
}
}
}
if ([[value objectForKey:@"attachmentPath"] isKindOfClass:[NSString class]])
{
NSData *attachementsData = [NSData dataWithContentsOfFile:[value objectForKey:@"attachmentPath"]];
[attachments addObject:attachementsData];
}
else if ([[value objectForKey:@"attachmentPath"] isKindOfClass:[NSArray class]])
{
NSArray *paths = [value objectForKey:@"attachmentPath"];
for (NSString *path in paths)
{
NSData *attachementsData = [NSData dataWithContentsOfFile:path];
[attachments addObject:attachementsData];
}
}
if ([[value objectForKey:@"recipients"] isKindOfClass:[NSString class]])
{
[recipients addObject:[value objectForKey:@"recipients"]];
}
else if ([[value objectForKey:@"recipients"] isKindOfClass:[NSArray class]])
{
NSArray *recipientsArray = [value objectForKey:@"recipients"];
for (NSString *recipient in recipientsArray)
{
[recipients addObject:recipient];
}
}
if ([[value objectForKey:@"ccRecipients"] isKindOfClass:[NSString class]])
{
[ccRecipients addObject:[value objectForKey:@"ccRecipients"]];
}
else if ([[value objectForKey:@"ccRecipients"] isKindOfClass:[NSArray class]])
{
NSArray *recipientsArray = [value objectForKey:@"ccRecipients"];
for (NSString *recipient in recipientsArray)
{
[ccRecipients addObject:recipient];
}
}
if ([[value objectForKey:@"bccRecipients"] isKindOfClass:[NSString class]])
{
[bccRecipients addObject:[value objectForKey:@"bccRecipients"]];
}
else if ([[value objectForKey:@"bccRecipients"] isKindOfClass:[NSArray class]])
{
NSArray *recipientsArray = [value objectForKey:@"bccRecipients"];
for (NSString *recipient in recipientsArray)
{
[bccRecipients addObject:recipient];
}
}
if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
{
type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
}
[params SSDKSetupMailParamsByText:text
title:title
images:images
attachments:attachments
recipients:recipients
ccRecipients:ccRecipients
bccRecipients:bccRecipients
type:type];
}
//SMS
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeSMS]]];
if ([value isKindOfClass:[NSDictionary class]])
{
NSString *text = nil;
NSString *title = nil;
NSMutableArray *images = [NSMutableArray array];
NSMutableArray *attachments = [NSMutableArray array];
NSMutableArray *recipients = [NSMutableArray array];
SSDKContentType type = SSDKContentTypeText;
if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
{
text = [value objectForKey:@"text"];
}
if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
{
title = [value objectForKey:@"title"];
}
if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
{
NSString *imgPath = [value objectForKey:@"imageUrl"];
SSDKImage *image = nil;
if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
options:MOBFRegexOptionsNoOptions
inRange:NSMakeRange(0, imgPath.length)
withString:imgPath])
{
image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:imgPath]];
}
else
{
UIImage *localImg = [UIImage imageWithContentsOfFile:imgPath];
image = [[SSDKImage alloc] initWithImage:localImg
format:SSDKImageFormatJpeg
settings:nil];
}
if (image)
{
[images addObject:imgPath];
}
else
{
NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
}
}
else if([[value objectForKey:@"imageUrl"] isKindOfClass:[NSArray class]])
{
NSArray *paths = [value objectForKey:@"imageUrl"];
for (NSString *path in paths)
{
SSDKImage *image = nil;
if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
options:MOBFRegexOptionsNoOptions
inRange:NSMakeRange(0, path.length)
withString:path])
{
image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:path]];
}
else
{
UIImage *localImg = [UIImage imageWithContentsOfFile:path];
image = [[SSDKImage alloc] initWithImage:localImg
format:SSDKImageFormatJpeg
settings:nil];
}
if (image)
{
[images addObject:path];
}
else
{
NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
}
}
}
if ([[value objectForKey:@"attachmentPath"] isKindOfClass:[NSString class]])
{
NSData *attachementsData = [NSData dataWithContentsOfFile:[value objectForKey:@"attachmentPath"]];
[attachments addObject:attachementsData];
}
else if ([[value objectForKey:@"attachmentPath"] isKindOfClass:[NSArray class]])
{
NSArray *paths = [value objectForKey:@"attachmentPath"];
for (NSString *path in paths)
{
NSData *attachementsData = [NSData dataWithContentsOfFile:path];
[attachments addObject:attachementsData];
}
}
if ([[value objectForKey:@"recipients"] isKindOfClass:[NSString class]])
{
[recipients addObject:[value objectForKey:@"recipients"]];
}
else if ([[value objectForKey:@"recipients"] isKindOfClass:[NSArray class]])
{
NSArray *recipientsArray = [value objectForKey:@"recipients"];
for (NSString *recipient in recipientsArray)
{
[recipients addObject:recipient];
}
}
if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
{
type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
}
[params SSDKSetupSMSParamsByText:text
title:title
images:images
attachments:attachments
recipients:recipients
type:type];
}
//Print
//无定制内容方法
//Copy
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeCopy]]];
if ([value isKindOfClass:[NSDictionary class]])
{
NSString *text = nil;
NSMutableArray *images = [NSMutableArray array];
NSString *url = nil;
SSDKContentType type = SSDKContentTypeImage;
if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
{
text = [value objectForKey:@"text"];
}
if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
{
NSString *imgPath = [value objectForKey:@"imageUrl"];
SSDKImage *image = nil;
if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
options:MOBFRegexOptionsNoOptions
inRange:NSMakeRange(0, imgPath.length)
withString:imgPath])
{
image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:imgPath]];
}
else
{
UIImage *localImg = [UIImage imageWithContentsOfFile:imgPath];
image = [[SSDKImage alloc] initWithImage:localImg
format:SSDKImageFormatJpeg
settings:nil];
}
if (image)
{
[images addObject:imgPath];
}
else
{
NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
}
}
else if([[value objectForKey:@"imageUrl"] isKindOfClass:[NSArray class]])
{
NSArray *paths = [value objectForKey:@"imageUrl"];
for (NSString *path in paths)
{
SSDKImage *image = nil;
if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
options:MOBFRegexOptionsNoOptions
inRange:NSMakeRange(0, path.length)
withString:path])
{
image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:path]];
}
else
{
UIImage *localImg = [UIImage imageWithContentsOfFile:path];
image = [[SSDKImage alloc] initWithImage:localImg
format:SSDKImageFormatJpeg
settings:nil];
}
if (image)
{
[images addObject:path];
}
else
{
NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
}
}
}
if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
{
url = [value objectForKey:@"url"];
}
if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
{
type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
}
[params SSDKSetupCopyParamsByText:text
images:images
url:[NSURL URLWithString:url]
type:type];
}
//Instapaper
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeInstapaper]]];
if ([value isKindOfClass:[NSDictionary class]])
{
NSString *url = nil;
NSString *title = nil;
NSString *desc = nil;
NSString *content = nil;
BOOL isPrivateFromSource;
NSInteger folderId;
BOOL resolveFinalUrl;
if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
{
url = [value objectForKey:@"url"];
}
if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
{
title = [value objectForKey:@"title"];
}
if ([[value objectForKey:@"desc"] isKindOfClass:[NSString class]])
{
desc = [value objectForKey:@"desc"];
}
if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
{
content = [value objectForKey:@"text"];
}
if ([[value objectForKey:@"isPrivateFromSource"] boolValue])
{
isPrivateFromSource = YES;
}
if (![[value objectForKey:@"resolveFinalUrl"] boolValue])
{
resolveFinalUrl = YES;
}
folderId = [[value objectForKey:@"folderId"] integerValue];
[params SSDKSetupInstapaperParamsByUrl:[NSURL URLWithString:url]
title:title
desc:desc
content:content
isPrivateFromSource:isPrivateFromSource
folderId:folderId
resolveFinalUrl:resolveFinalUrl];
}
//Pocket
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypePocket]]];
if ([value isKindOfClass:[NSDictionary class]])
{
NSString *url = nil;
NSString *title = nil;
NSString *tags = nil;
NSString *tweetId = nil;
if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
{
url = [value objectForKey:@"url"];
}
if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
{
title = [value objectForKey:@"title"];
}
id tagValue = [value objectForKey:@"tags"];
if ([tagValue isKindOfClass:[NSString class]])
{
tags = tagValue;
}
else if ([tagValue isKindOfClass:[NSArray class]])
{
NSArray *tagsArr = tagValue;
tags = [tagsArr componentsJoinedByString:@","];
}
if ([[value objectForKey:@"tweetID"] isKindOfClass:[NSString class]])
{
tweetId = [value objectForKey:@"tweetID"];
}
[params SSDKSetupPocketParamsByUrl:[NSURL URLWithString:url]
title:title
tags:tags
tweetId:tweetId];
}
//YouDaoNote
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeYouDaoNote]]];
if ([value isKindOfClass:[NSDictionary class]])
{
NSString *text = nil;
NSString *title = nil;
NSMutableArray *images = [NSMutableArray array];
NSString *source = nil;
NSString *author = nil;
NSString *notebook = nil;
if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
{
text = [value objectForKey:@"text"];
}
if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
{
title = [value objectForKey:@"title"];
}
if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
{
NSString *imgPath = [value objectForKey:@"imageUrl"];
SSDKImage *image = nil;
if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
options:MOBFRegexOptionsNoOptions
inRange:NSMakeRange(0, imgPath.length)
withString:imgPath])
{
image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:imgPath]];
}
else
{
UIImage *localImg = [UIImage imageWithContentsOfFile:imgPath];
image = [[SSDKImage alloc] initWithImage:localImg
format:SSDKImageFormatJpeg
settings:nil];
}
if (image)
{
[images addObject:imgPath];
}
else
{
NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
}
}
else if([[value objectForKey:@"imageUrl"] isKindOfClass:[NSArray class]])
{
NSArray *paths = [value objectForKey:@"imageUrl"];
for (NSString *path in paths)
{
SSDKImage *image = nil;
if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
options:MOBFRegexOptionsNoOptions
inRange:NSMakeRange(0, path.length)
withString:path])
{
image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:path]];
}
else
{
UIImage *localImg = [UIImage imageWithContentsOfFile:path];
image = [[SSDKImage alloc] initWithImage:localImg
format:SSDKImageFormatJpeg
settings:nil];
}
if (image)
{
[images addObject:path];
}
else
{
NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
}
}
}
if ([[value objectForKey:@"source"] isKindOfClass:[NSString class]])
{
source = [value objectForKey:@"source"];
}
if ([[value objectForKey:@"author"] isKindOfClass:[NSString class]])
{
author = [value objectForKey:@"author"];
}
if ([[value objectForKey:@"notebook"] isKindOfClass:[NSString class]])
{
notebook = [value objectForKey:@"notebook"];
}
[params SSDKSetupYouDaoNoteParamsByText:text
images:images
title:title
source:source
author:author
notebook:notebook];
}
//Pinterest
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypePinterest]]];
if ([value isKindOfClass:[NSDictionary class]])
{
NSString *image = nil;
NSString *desc = nil;
NSString *url = nil;
NSString *board = nil;
if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
{
image = [value objectForKey:@"imageUrl"];
}
if ([[value objectForKey:@"desc"] isKindOfClass:[NSString class]])
{
desc = [value objectForKey:@"desc"];
}
if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
{
url = [value objectForKey:@"url"];
}
if ([[value objectForKey:@"board"] isKindOfClass:[NSString class]])
{
board = [value objectForKey:@"board"];
}
[params SSDKSetupPinterestParamsByImage:image
desc:desc
url:[NSURL URLWithString:url]
boardName:board];
}
//Flickr
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeFlickr]]];
if ([value isKindOfClass:[NSDictionary class]])
{
NSString *text = nil;
NSString *image = nil;
NSString *title = nil;
NSMutableArray *tags = [NSMutableArray array];
BOOL isPublic;
BOOL isFriend;
BOOL isFamiliy;
NSInteger safetyLevel;
NSInteger contentType;
NSInteger hidden;
if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
{
text = [value objectForKey:@"text"];
}
if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
{
image = [value objectForKey:@"imageUrl"];
}
if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
{
title = [value objectForKey:@"title"];
}
id tagValue = [value objectForKey:@"tags"];
if ([tagValue isKindOfClass:[NSString class]])
{
[tags addObject:tagValue];
}
else if ([tagValue isKindOfClass:[NSArray class]])
{
tags = [tagValue mutableCopy];
}
if ([[value objectForKey:@"isPublic"] boolValue])
{
isPublic = YES;
}
if ([[value objectForKey:@"isFriend"] boolValue])
{
isFriend = YES;
}
if ([[value objectForKey:@"isFamiliy"] boolValue])
{
isFamiliy = YES;
}
if ([[value objectForKey:@"safetyLevel"] integerValue])
{
safetyLevel = [[value objectForKey:@"safetyLevel"] integerValue];
}
if ([[value objectForKey:@"contentType"] integerValue])
{
contentType = [[value objectForKey:@"contentType"] integerValue];
}
if ([[value objectForKey:@"hidden"] integerValue])
{
hidden = [[value objectForKey:@"hidden"] integerValue];
}
[params SSDKSetupFlickrParamsByText:text
image:image
title:title
tags:tags
isPublic:isPublic
isFriend:isFriend
isFamily:isFamiliy
safetyLevel:safetyLevel
contentType:contentType
hidden:hidden];
}
//Dropbox
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeDropbox]]];
if ([value isKindOfClass:[NSDictionary class]])
{
NSString *attachmentPath = nil;
if ([[value objectForKey:@"attachmentPath"] isKindOfClass:[NSString class]])
{
attachmentPath = [value objectForKey:@"attachmentPath"];
}
[params SSDKSetupDropboxParamsByAttachment:attachmentPath];
}
//VKontakte
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeVKontakte]]];
if ([value isKindOfClass:[NSDictionary class]])
{
NSString *text = nil;
NSString *url = nil;
NSMutableArray *images = [NSMutableArray array];
NSString *groupId = nil;
BOOL friendsOnly;
double lat;
double lng;
SSDKContentType type = SSDKContentTypeText;
if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
{
text = [value objectForKey:@"text"];
}
if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
{
url = [value objectForKey:@"url"];
}
if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
{
NSString *imgPath = [value objectForKey:@"imageUrl"];
SSDKImage *image = nil;
if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
options:MOBFRegexOptionsNoOptions
inRange:NSMakeRange(0, imgPath.length)
withString:imgPath])
{
image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:imgPath]];
}
else
{
UIImage *localImg = [UIImage imageWithContentsOfFile:imgPath];
image = [[SSDKImage alloc] initWithImage:localImg
format:SSDKImageFormatJpeg
settings:nil];
}
if (image)
{
[images addObject:imgPath];
}
else
{
NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
}
}
else if([[value objectForKey:@"imageUrl"] isKindOfClass:[NSArray class]])
{
NSArray *paths = [value objectForKey:@"imageUrl"];
for (NSString *path in paths)
{
SSDKImage *image = nil;
if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
options:MOBFRegexOptionsNoOptions
inRange:NSMakeRange(0, path.length)
withString:path])
{
image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:path]];
}
else
{
UIImage *localImg = [UIImage imageWithContentsOfFile:path];
image = [[SSDKImage alloc] initWithImage:localImg
format:SSDKImageFormatJpeg
settings:nil];
}
if (image)
{
[images addObject:path];
}
else
{
NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
}
}
}
if ([[value objectForKey:@"groupID"] isKindOfClass:[NSString class]])
{
groupId = [value objectForKey:@"groupID"];
}
if ([[value objectForKey:@"friendsOnly"] boolValue])
{
friendsOnly = YES;
}
if ([[value objectForKey:@"latitude"] isKindOfClass:[NSString class]])
{
lat = [[value objectForKey:@"latitude"] doubleValue];
}
if ([[value objectForKey:@"longitude"] isKindOfClass:[NSString class]])
{
lng = [[value objectForKey:@"longitude"] doubleValue];
}
if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
{
type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
}
[params SSDKSetupVKontakteParamsByText:text
images:images
url:[NSURL URLWithString:url]
groupId:groupId
friendsOnly:friendsOnly
latitude:lat
longitude:lng
type:type];
}
//Yixin系列
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformSubTypeYiXinSession]]];
if ([value isKindOfClass:[NSDictionary class]])
{
__setYixinParams(value, params, SSDKPlatformSubTypeYiXinSession);
}
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformSubTypeYiXinTimeline]]];
if ([value isKindOfClass:[NSDictionary class]])
{
__setYixinParams(value, params, SSDKPlatformSubTypeYiXinTimeline);
}
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformSubTypeYiXinFav]]];
if ([value isKindOfClass:[NSDictionary class]])
{
__setYixinParams(value, params, SSDKPlatformSubTypeYiXinFav);
}
//MingDao
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeMingDao]]];
if ([value isKindOfClass:[NSDictionary class]])
{
NSString *text = nil;
NSString *image = nil;
NSString *url = nil;
NSString *title = nil;
SSDKContentType type = SSDKContentTypeText;
if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
{
text = [value objectForKey:@"text"];
}
if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
{
image = [value objectForKey:@"imageUrl"];
}
if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
{
url = [value objectForKey:@"url"];
}
if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
{
title = [value objectForKey:@"title"];
}
if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
{
type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
}
[params SSDKSetupMingDaoParamsByText:text
image:image
url:[NSURL URLWithString:url]
title:title
type:type];
}
//Line
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeLine]]];
if ([value isKindOfClass:[NSDictionary class]])
{
NSString *text = nil;
NSString *image = nil;
SSDKContentType type = SSDKContentTypeText;
if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
{
text = [value objectForKey:@"text"];
}
if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
{
image = [value objectForKey:@"imageUrl"];
}
if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
{
type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
}
[params SSDKSetupLineParamsByText:text
image:image
type:type];
}
//whatsApp
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeWhatsApp]]];
if ([value isKindOfClass:[NSDictionary class]])
{
NSString *text = nil;
NSString *image = nil;
NSString *audioPath = nil;
NSString *videoPath = nil;
CGFloat menuX;
CGFloat menuY;
SSDKContentType type = SSDKContentTypeText;
if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
{
text = [value objectForKey:@"text"];
}
if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
{
image = [value objectForKey:@"imageUrl"];
}
if ([[value objectForKey:@"audioPath"] isKindOfClass:[NSString class]])
{
audioPath = [value objectForKey:@"audioPath"];
}
if ([[value objectForKey:@"videoPath"] isKindOfClass:[NSString class]])
{
videoPath = [value objectForKey:@"videoPath"];
}
if ([[value objectForKey:@"menuX"] isKindOfClass:[NSString class]])
{
menuX = [[value objectForKey:@"menuX"] floatValue];
}
if ([[value objectForKey:@"menuY"] isKindOfClass:[NSString class]])
{
menuX = [[value objectForKey:@"menuY"] floatValue];
}
CGPoint point = CGPointMake(menuX, menuY);
if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
{
type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
}
[params SSDKSetupWhatsAppParamsByText:text
image:image
audio:audioPath
video:videoPath
menuDisplayPoint:point
type:type];
}
//Kakao系列
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformSubTypeKakaoTalk]]];
if ([value isKindOfClass:[NSDictionary class]])
{
__setKakaoParams(value,params,SSDKPlatformSubTypeKakaoTalk);
}
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformSubTypeKakaoStory]]];
if ([value isKindOfClass:[NSDictionary class]])
{
__setKakaoParams(value,params,SSDKPlatformSubTypeKakaoStory);
}
//支付宝好友
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeAliPaySocial]]];
if ([value isKindOfClass:[NSDictionary class]])
{
NSString *text = nil;
NSString *image = nil;
NSString *title = nil;
NSString *url = nil;
SSDKContentType type = SSDKContentTypeText;
if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
{
text = [value objectForKey:@"text"];
}
if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
{
image = [value objectForKey:@"imageUrl"];
}
if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
{
title = [value objectForKey:@"title"];
}
if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
{
url = [value objectForKey:@"url"];
}
if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
{
type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
}
[params SSDKSetupAliPaySocialParamsByText:text
image:img
title:title
url:[NSURL URLWithString:url]
type:type
platformType:SSDKPlatformTypeAliPaySocial];
}
//支付宝朋友圈
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeAliPaySocialTimeline]]];
if ([value isKindOfClass:[NSDictionary class]])
{
NSString *text = nil;
NSString *image = nil;
NSString *title = nil;
NSString *url = nil;
SSDKContentType type = SSDKContentTypeText;
if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
{
text = [value objectForKey:@"text"];
}
if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
{
image = [value objectForKey:@"imageUrl"];
}
if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
{
title = [value objectForKey:@"title"];
}
if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
{
url = [value objectForKey:@"url"];
}
if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
{
type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
}
[params SSDKSetupAliPaySocialParamsByText:text
image:img
title:title
url:[NSURL URLWithString:url]
type:type
platformType:SSDKPlatformTypeAliPaySocialTimeline];
}
//钉钉
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeDingTalk]]];
if ([value isKindOfClass:[NSDictionary class]])
{
NSString *text = nil;
NSString *image = nil;
NSString *title = nil;
NSString *url = nil;
SSDKContentType type = SSDKContentTypeText;
if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
{
text = [value objectForKey:@"text"];
}
if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
{
image = [value objectForKey:@"imageUrl"];
}
if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
{
title = [value objectForKey:@"title"];
}
if ([[value objectForKey:@"url"] isKindOfClass:[NSString class]])
{
url = [value objectForKey:@"url"];
}
if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
{
type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
}
[params SSDKSetupDingTalkParamsByText:text
image:image
title:title
url:[NSURL URLWithString:url]
type:type];
}
//Evernote
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeEvernote]]];
if ([value isKindOfClass:[NSDictionary class]])
{
NSString *text = nil;
NSString *title = nil;
NSMutableArray *images = [NSMutableArray array];
NSMutableArray *tags = [NSMutableArray array];
NSString *notebook = nil;
if ([[value objectForKey:@"text"] isKindOfClass:[NSString class]])
{
text = [value objectForKey:@"text"];
}
if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
{
title = [value objectForKey:@"title"];
}
if ([[value objectForKey:@"imageUrl"] isKindOfClass:[NSString class]])
{
NSString *imgPath = [value objectForKey:@"imageUrl"];
SSDKImage *image = nil;
if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
options:MOBFRegexOptionsNoOptions
inRange:NSMakeRange(0, imgPath.length)
withString:imgPath])
{
image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:imgPath]];
}
else
{
UIImage *localImg = [UIImage imageWithContentsOfFile:imgPath];
image = [[SSDKImage alloc] initWithImage:localImg
format:SSDKImageFormatJpeg
settings:nil];
}
if (image)
{
[images addObject:imgPath];
}
else
{
NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
}
}
else if([[value objectForKey:@"imageUrl"] isKindOfClass:[NSArray class]])
{
NSArray *paths = [value objectForKey:@"imageUrl"];
for (NSString *path in paths)
{
SSDKImage *image = nil;
if ([MOBFRegex isMatchedByRegex:@"\\w://.*"
options:MOBFRegexOptionsNoOptions
inRange:NSMakeRange(0, path.length)
withString:path])
{
image = [[SSDKImage alloc]initWithURL:[NSURL URLWithString:path]];
}
else
{
UIImage *localImg = [UIImage imageWithContentsOfFile:path];
image = [[SSDKImage alloc] initWithImage:localImg
format:SSDKImageFormatJpeg
settings:nil];
}
if (image)
{
[images addObject:path];
}
else
{
NSLog(@"#waring : 检测不到有效图片路径,请检查传入图片的路径的有效性");
}
}
}
if ([[value objectForKey:@"notebook"] isKindOfClass:[NSString class]])
{
notebook = [value objectForKey:@"notebook"];
}
id tagValue = [value objectForKey:@"tags"];
if ([tagValue isKindOfClass:[NSString class]])
{
[tags addObject:tagValue];
}
else if ([tagValue isKindOfClass:[NSArray class]])
{
tags = [tagValue mutableCopy];
}
[params SSDKSetupEvernoteParamsByText:text
images:images
title:title
notebook:notebook
tags:tags
platformType:SSDKPlatformTypeEvernote];
}
//Youtube
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeYouTube]]];
if ([value isKindOfClass:[NSDictionary class]])
{
NSString *desc = nil;
NSString *title = nil;
NSString *videoPath = nil;
NSMutableArray *tags = [NSMutableArray array];
SSDKPrivacyStatus privacyStatus = SSDKPrivacyStatusPrivate;
if ([[value objectForKey:@"desc"] isKindOfClass:[NSString class]])
{
desc = [value objectForKey:@"desc"];
}
if ([[value objectForKey:@"title"] isKindOfClass:[NSString class]])
{
title = [value objectForKey:@"title"];
}
id tagValue = [value objectForKey:@"tags"];
if ([tagValue isKindOfClass:[NSString class]])
{
NSArray *tagArr = [tagValue componentsSeparatedByString:@","];
[tags addObjectsFromArray:tagArr];
}
else if ([tagValue isKindOfClass:[NSArray class]])
{
tags = [tagValue mutableCopy];
}
if ([[value objectForKey:@"videoPath"] isKindOfClass:[NSString class]])
{
videoPath = [value objectForKey:@"videoPath"];
}
if ([[value objectForKey:@"privateStatus"] integerValue] != 0) {
privacyStatus = [[value objectForKey:@"privateStatus"] integerValue];
}
[params SSDKSetupYouTubeParamsByVideo:videoPath
title:title
description:desc
tags:tags
privacyStatus:privacyStatus];
}
value = [MOBFJson objectFromJSONString:[customizeShareParams objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeMeiPai]]];
if ([value isKindOfClass:[NSDictionary class]])
{
NSString *videoPath = nil;
SSDKContentType type = SSDKContentTypeVideo;
if ([[value objectForKey:@"videoPath"] isKindOfClass:[NSString class]])
{
videoPath = [value objectForKey:@"videoPath"];
}
if ([[value objectForKey:@"shareType"] isKindOfClass:[NSNumber class]])
{
type = __convertContentType([[value objectForKey:@"shareType"] integerValue]);
}
[params SSDKSetupMeiPaiParamsByUrl:[NSURL URLWithString:videoPath]
type:type];
}
}
}
return params;
}
void __iosShareSDKRegisterAppAndSetPltformsConfig (void *appKey, void*configInfo)
{
NSMutableArray *activePlatforms = [NSMutableArray array];
NSMutableDictionary *platformsDict = [NSMutableDictionary dictionary];
// NSString *appKeyStr = [NSString stringWithCString:appKey encoding:NSUTF8StringEncoding];
if (configInfo)
{
platformsDict = __parseWithHashtable(configInfo);
}
for (id obj in [platformsDict allKeys])
{
NSInteger platformInterger = [obj integerValue];
NSDictionary *dict = [platformsDict objectForKey:[NSString stringWithFormat:@"%@",obj]];
if ([[dict objectForKey:@"Enable"] isEqualToString:@"true"])
{
[activePlatforms addObject:[NSNumber numberWithInteger:platformInterger]];
}
}
[ShareSDK registerActivePlatforms:activePlatforms
onImport:^(SSDKPlatformType platformType) {
switch (platformType)
{
case SSDKPlatformTypeSinaWeibo:
#ifdef __SHARESDK_SINA_WEIBO__
[ShareSDKConnector connectWeibo:[WeiboSDK class]];
#endif
break;
case SSDKPlatformTypeQQ:
#ifdef __SHARESDK_QQ__
[ShareSDKConnector connectQQ:[QQApiInterface class]
tencentOAuthClass:[TencentOAuth class]];
#endif
break;
case SSDKPlatformTypeWechat:
#ifdef __SHARESDK_WECHAT__
[ShareSDKConnector connectWeChat:[WXApi class]];
#endif
break;
case SSDKPlatformTypeRenren:
#ifdef __SHARESDK_RENREN__
[ShareSDKConnector connectRenren:[RennClient class]];
#endif
break;
case SSDKPlatformTypeKakao:
#ifdef __SHARESDK_KAKAO__
[ShareSDKConnector connectKaKao:[KOSession class]];
#endif
break;
case SSDKPlatformTypeYiXin:
#ifdef __SHARESDK_YIXIN__
[ShareSDKConnector connectYiXin:[YXApi class]];
#endif
break;
case SSDKPlatformTypeFacebookMessenger:
#ifdef __SHARESDK_FACEBOOK_MSG__
[ShareSDKConnector connectFacebookMessenger:[FBSDKMessengerSharer class]];
#endif
break;
case SSDKPlatformTypeAliPaySocial:
#ifdef __SHARESDK_ALIPAYSOCIAL__
[ShareSDKConnector connectAliPaySocial:[APOpenAPI class]];
#endif
break;
case SSDKPlatformTypeDingTalk:
#ifdef __SHARESDK_DINGTALK__
[ShareSDKConnector connectDingTalk:[DTOpenAPI class]];
#endif
break;
case SSDKPlatformTypeMeiPai:
#ifdef __SHARESDK_MEIPAI__
[ShareSDKConnector connectMeiPai:[MPShareSDK class]];
#endif
break;
default:
break;
}
} onConfiguration:^(SSDKPlatformType platformType, NSMutableDictionary *appInfo) {
switch (platformType)
{
case SSDKPlatformTypeWechat:
{
NSArray *weChatTypes = @[@(SSDKPlatformTypeWechat),
@(SSDKPlatformSubTypeWechatSession),
@(SSDKPlatformSubTypeWechatTimeline),
@(SSDKPlatformSubTypeWechatFav)];
[weChatTypes enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSDictionary *wechatDict = [platformsDict objectForKey:[NSString stringWithFormat:@"%@",obj]];
if (wechatDict && [[wechatDict allKeys] count] > 0)
{
[appInfo SSDKSetupWeChatByAppId:[wechatDict objectForKey:@"app_id"]
appSecret:[wechatDict objectForKey:@"app_secret"]];
*stop = YES;
}
}];
break;
}
case SSDKPlatformTypeQQ:
{
NSArray *QQTypes = @[@(SSDKPlatformTypeQQ),
@(SSDKPlatformSubTypeQQFriend),
@(SSDKPlatformSubTypeQZone)];
[QQTypes enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSDictionary *QQDict = [platformsDict objectForKey:[NSString stringWithFormat:@"%@",obj]];
if (QQDict && [[QQDict allKeys] count] > 0)
{
[appInfo SSDKSetupQQByAppId:[QQDict objectForKey:@"app_id"]
appKey:[QQDict objectForKey:@"app_key"]
authType:[QQDict objectForKey:@"auth_type"]];
*stop = YES;
}
}];
break;
}
case SSDKPlatformTypeKakao:
{
NSArray *KakaoTypes = @[@(SSDKPlatformTypeKakao),
@(SSDKPlatformSubTypeKakaoTalk),
@(SSDKPlatformSubTypeKakaoStory)];
[KakaoTypes enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSDictionary *KakaoDict = [platformsDict objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)obj]];
if (KakaoDict && [[KakaoDict allKeys] count] > 0)
{
[appInfo SSDKSetupKaKaoByAppKey:[KakaoDict objectForKey:@"app_key"]
restApiKey:[KakaoDict objectForKey:@"rest_api_key"]
redirectUri:[KakaoDict objectForKey:@"redirect_uri"]
authType:[KakaoDict objectForKey:@"auth_type"]];
*stop = YES;
}
}];
break;
}
case SSDKPlatformTypeYiXin:
{
NSArray *yiXinTypes = @[@(SSDKPlatformTypeYiXin),
@(SSDKPlatformSubTypeYiXinSession),
@(SSDKPlatformSubTypeYiXinTimeline),
@(SSDKPlatformSubTypeYiXinFav)];
[yiXinTypes enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSDictionary *yixinDict = [platformsDict objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)obj]];
if (yixinDict && [[yixinDict allKeys] count] > 0)
{
[appInfo SSDKSetupYiXinByAppId:[yixinDict objectForKey:@"app_id"]
appSecret:[yixinDict objectForKey:@"app_secret"]
redirectUri:[yixinDict objectForKey:@"redirect_uri"]
authType:[yixinDict objectForKey:@"auth_type"]];
*stop = YES;
}
}];
break;
}
case SSDKPlatformTypeAliPaySocial:
{
NSDictionary *platformDict = nil;
NSDictionary *dictFromAliPaySocial = [platformsDict objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeAliPaySocial]];
NSDictionary *dictFromAliPaySocialTimeline = [platformsDict objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)SSDKPlatformTypeAliPaySocialTimeline]];
if (dictFromAliPaySocial)
{
platformDict = dictFromAliPaySocial;
}
else
{
platformDict = dictFromAliPaySocialTimeline;
}
[appInfo addEntriesFromDictionary:platformDict];
break;
}
default:
{
NSDictionary *platformDict = [platformsDict objectForKey:[NSString stringWithFormat:@"%lu",(unsigned long)platformType]];
[appInfo addEntriesFromDictionary:platformDict];
break;
}
}
}];
}
void __iosShareSDKAuthorize (int reqID, int platType, void *observer)
{
NSString *observerStr = nil;
if (observer)
{
observerStr = [NSString stringWithCString:observer encoding:NSUTF8StringEncoding];
}
[ShareSDK authorize:platType
settings:nil
onStateChanged:^(SSDKResponseState state, SSDKUser *user, NSError *error) {
NSMutableDictionary *resultDict = [NSMutableDictionary dictionary];
[resultDict setObject:[NSNumber numberWithInteger:1] forKey:@"action"];
[resultDict setObject:[NSNumber numberWithInteger:state] forKey:@"status"];
[resultDict setObject:[NSNumber numberWithInteger:platType] forKey:@"platform"];
[resultDict setObject:[NSNumber numberWithInteger:reqID] forKey:@"reqID"];
if (state == SSDKResponseStateFail && error)
{
NSMutableDictionary *errorDict = [NSMutableDictionary dictionary];
[errorDict setObject:[NSNumber numberWithInteger:[error code]] forKey:@"error_code"];
if ([[error userInfo] objectForKey:@"error_message"])
{
if ([[error userInfo] objectForKey:@"error_message"])
{
[errorDict setObject:[[error userInfo] objectForKey:@"error_message"] forKey:@"error_msg"];
}
}
else if ([[error userInfo] objectForKey:@"user_data"])
{
NSDictionary *error_data = [[error userInfo] objectForKey:@"user_data"];
if ([error_data objectForKey:@"error"])
{
[errorDict setObject:[error_data objectForKey:@"error"] forKey:@"error_msg"];
}
if ([error_data objectForKey:@"error_code"])
{
[errorDict setObject:[NSNumber numberWithInteger:[[error_data objectForKey:@"error_code"] integerValue]] forKey:@"error_code"];
}
}
[resultDict setObject:errorDict forKey:@"res"];
}
if (state == SSDKResponseStateSuccess)
{
if ([user rawData])
{
[resultDict setObject:[[user credential] rawData] forKey:@"res"];
}
}
NSString *resultStr = [MOBFJson jsonStringFromObject:resultDict];
UnitySendMessage([observerStr UTF8String], "_Callback", [resultStr UTF8String]);
}];
}
void __iosShareSDKCancelAuthorize (int platType)
{
[ShareSDK cancelAuthorize:platType];
}
bool __iosShareSDKHasAuthorized (int platType)
{
return [ShareSDK hasAuthorized:platType];
}
bool __iosShareSDKIsClientInstalled(int platType)
{
return [ShareSDK isClientInstalled:platType];
}
void __iosShareSDKGetUserInfo (int reqID, int platType, void *observer)
{
NSString *observerStr = nil;
if (observer)
{
observerStr = [NSString stringWithCString:observer encoding:NSUTF8StringEncoding];
}
[ShareSDK getUserInfo:platType
onStateChanged:^(SSDKResponseState state, SSDKUser *user, NSError *error)
{
NSMutableDictionary *resultDict = [NSMutableDictionary dictionary];
[resultDict setObject:[NSNumber numberWithInteger:8] forKey:@"action"];
[resultDict setObject:[NSNumber numberWithInteger:state] forKey:@"status"];
[resultDict setObject:[NSNumber numberWithInteger:platType] forKey:@"platform"];
[resultDict setObject:[NSNumber numberWithInteger:reqID] forKey:@"reqID"];
if (state == SSDKResponseStateFail && error)
{
NSMutableDictionary *errorDict = [NSMutableDictionary dictionary];
[errorDict setObject:[NSNumber numberWithInteger:[error code]]
forKey:@"error_code"];
if ([[error userInfo] objectForKey:@"error_message"])
{
if ([[error userInfo] objectForKey:@"error_message"])
{
[errorDict setObject:[[error userInfo] objectForKey:@"error_message"]
forKey:@"error_msg"];
}
}
else if ([[error userInfo] objectForKey:@"user_data"])
{
NSDictionary *error_data = [[error userInfo] objectForKey:@"user_data"];
if ([error_data objectForKey:@"error"])
{
[errorDict setObject:[error_data objectForKey:@"error"]
forKey:@"error_msg"];
}
if ([error_data objectForKey:@"error_code"])
{
[errorDict setObject:[NSNumber numberWithInteger:[[error_data objectForKey:@"error_code"] integerValue]]
forKey:@"error_code"];
}
}
[resultDict setObject:errorDict forKey:@"res"];
}
if (state == SSDKResponseStateSuccess && user)
{
[resultDict setObject:[user rawData] forKey:@"res"];
}
NSString *resultStr = [MOBFJson jsonStringFromObject:resultDict];
UnitySendMessage([observerStr UTF8String], "_Callback", [resultStr UTF8String]);
}];
}
void __iosShareSDKShare (int reqID, int platType, void *content, void *observer)
{
NSString *observerStr = nil;
NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
observerStr = [NSString stringWithCString:observer encoding:NSUTF8StringEncoding];
if (content)
{
NSString *contentStr = [NSString stringWithCString:content encoding:NSUTF8StringEncoding];
shareParams = __getShareParamsWithString(contentStr);
}
[ShareSDK share:platType
parameters:shareParams
onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) {
NSMutableDictionary *resultDict = [NSMutableDictionary dictionary];
[resultDict setObject:[NSNumber numberWithInteger:9] forKey:@"action"];
[resultDict setObject:[NSNumber numberWithInteger:state] forKey:@"status"];
[resultDict setObject:[NSNumber numberWithInteger:platType] forKey:@"platform"];
[resultDict setObject:[NSNumber numberWithInteger:reqID] forKey:@"reqID"];
if (state == SSDKResponseStateFail && error)
{
NSMutableDictionary *errorDict = [NSMutableDictionary dictionary];
[errorDict setObject:[NSNumber numberWithInteger:[error code]] forKey:@"error_code"];
if ([[error userInfo] objectForKey:@"error_message"])
{
if ([[error userInfo] objectForKey:@"error_message"])
{
[errorDict setObject:[[error userInfo] objectForKey:@"error_message"]
forKey:@"error_msg"];
}
}
else if ([[error userInfo] objectForKey:@"user_data"])
{
NSDictionary *error_data = [[error userInfo] objectForKey:@"user_data"];
if ([error_data objectForKey:@"error"])
{
[errorDict setObject:[error_data objectForKey:@"error"] forKey:@"error_msg"];
}
if ([error_data objectForKey:@"error_code"])
{
[errorDict setObject:[NSNumber numberWithInteger:[[error_data objectForKey:@"error_code"] integerValue]]
forKey:@"error_code"];
}
}
[resultDict setObject:errorDict forKey:@"res"];
}
if (state == SSDKResponseStateSuccess)
{
if ([contentEntity rawData])
{
[resultDict setObject:[contentEntity rawData] forKey:@"res"];
}
}
NSString *resultStr = [MOBFJson jsonStringFromObject:resultDict];
UnitySendMessage([observerStr UTF8String], "_Callback", [resultStr UTF8String]);
}];
}
void __iosShareSDKOneKeyShare (int reqID, void *platTypes, void *content, void *observer)
{
NSArray *platTypesArr = nil;
NSString *observerStr = nil;
NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
observerStr = [NSString stringWithCString:observer encoding:NSUTF8StringEncoding];
if (platTypes)
{
NSString *platTypesStr = [NSString stringWithCString:platTypes encoding:NSUTF8StringEncoding];
platTypesArr = [MOBFJson objectFromJSONString:platTypesStr];
}
if (content)
{
NSString *contentStr = [NSString stringWithCString:content encoding:NSUTF8StringEncoding];
shareParams = __getShareParamsWithString(contentStr);
}
[SSEShareHelper oneKeyShare:platTypesArr
parameters:shareParams
onStateChanged:^(SSDKPlatformType platformType, SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {
NSMutableDictionary *resultDict = [NSMutableDictionary dictionary];
[resultDict setObject:[NSNumber numberWithInteger:9] forKey:@"action"];
[resultDict setObject:[NSNumber numberWithInteger:state] forKey:@"status"];
[resultDict setObject:[NSNumber numberWithInteger:platformType] forKey:@"platform"];
[resultDict setObject:[NSNumber numberWithInteger:reqID] forKey:@"reqID"];
if (state == SSDKResponseStateFail && error)
{
NSMutableDictionary *errorDict = [NSMutableDictionary dictionary];
[errorDict setObject:[NSNumber numberWithInteger:[error code]] forKey:@"error_code"];
if ([[error userInfo] objectForKey:@"error_message"])
{
if ([[error userInfo] objectForKey:@"error_message"])
{
[errorDict setObject:[[error userInfo] objectForKey:@"error_message"] forKey:@"error_msg"];
}
}
else if ([[error userInfo] objectForKey:@"user_data"])
{
NSDictionary *error_data = [[error userInfo] objectForKey:@"user_data"];
if ([error_data objectForKey:@"error"])
{
[errorDict setObject:[error_data objectForKey:@"error"] forKey:@"error_msg"];
}
if ([error_data objectForKey:@"error_code"])
{
[errorDict setObject:[NSNumber numberWithInteger:[[error_data objectForKey:@"error_code"] integerValue]]
forKey:@"error_code"];
}
}
[resultDict setObject:errorDict forKey:@"res"];
}
if (state == SSDKResponseStateSuccess)
{
if ([contentEntity rawData])
{
[resultDict setObject:[contentEntity rawData] forKey:@"res"];
}
}
NSString *resultStr = [MOBFJson jsonStringFromObject:resultDict];
UnitySendMessage([observerStr UTF8String], "_Callback", [resultStr UTF8String]);
}];
}
void __iosShareSDKShowShareMenu (int reqID, void *platTypes, void *content, int x, int y, void *observer)
{
NSArray *platTypesArr = nil;
NSMutableArray *actionSheetItems = [NSMutableArray array];
NSString *observerStr = nil;
NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
observerStr = [NSString stringWithCString:observer encoding:NSUTF8StringEncoding];
if (platTypes)
{
NSString *platTypesStr = [NSString stringWithCString:platTypes encoding:NSUTF8StringEncoding];
platTypesArr = [MOBFJson objectFromJSONString:platTypesStr];
}
else
{
platTypesArr = [ShareSDK activePlatforms];
for (id obj in platTypesArr)
{
NSInteger platformInterger = [obj integerValue];
[actionSheetItems addObject:[NSNumber numberWithInteger:platformInterger]];
}
platTypesArr = [actionSheetItems mutableCopy];
}
if (content)
{
NSString *contentStr = [NSString stringWithCString:content encoding:NSUTF8StringEncoding];
shareParams = __getShareParamsWithString(contentStr);
}
if ([MOBFDevice isPad])
{
if (!_refView)
{
_refView = [[UIView alloc] initWithFrame:CGRectMake(x, y, 10, 10)];
}
[[UIApplication sharedApplication].keyWindow.rootViewController.view addSubview:_refView];
}
[ShareSDK showShareActionSheet:_refView
items:platTypesArr
shareParams:shareParams
onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {
NSMutableDictionary *resultDict = [NSMutableDictionary dictionary];
[resultDict setObject:[NSNumber numberWithInteger:9] forKey:@"action"];
[resultDict setObject:[NSNumber numberWithInteger:state] forKey:@"status"];
[resultDict setObject:[NSNumber numberWithInteger:platformType] forKey:@"platform"];
[resultDict setObject:[NSNumber numberWithInteger:reqID] forKey:@"reqID"];
if (state == SSDKResponseStateFail && error)
{
NSMutableDictionary *errorDict = [NSMutableDictionary dictionary];
[errorDict setObject:[NSNumber numberWithInteger:[error code]] forKey:@"error_code"];
if ([[error userInfo] objectForKey:@"error_message"])
{
if ([[error userInfo] objectForKey:@"error_message"])
{
[errorDict setObject:[[error userInfo] objectForKey:@"error_message"]
forKey:@"error_msg"];
}
}
else if ([[error userInfo] objectForKey:@"user_data"])
{
NSDictionary *error_data = [[error userInfo] objectForKey:@"user_data"];
if ([error_data objectForKey:@"error"])
{
[errorDict setObject:[error_data objectForKey:@"error"]
forKey:@"error_msg"];
}
else if ([error_data objectForKey:@"error_message"])
{
[errorDict setObject:[error_data objectForKey:@"error_message"]
forKey:@"error_msg"];
}
if ([error_data objectForKey:@"error_code"])
{
[errorDict setObject:[NSNumber numberWithInteger:[[error_data objectForKey:@"error_code"] integerValue]]
forKey:@"error_code"];
}
}
[resultDict setObject:errorDict forKey:@"res"];
}
if (state == SSDKResponseStateSuccess)
{
if ([contentEntity rawData])
{
[resultDict setObject:[contentEntity rawData] forKey:@"res"];
}
}
NSString *resultStr = [MOBFJson jsonStringFromObject:resultDict];
UnitySendMessage([observerStr UTF8String], "_Callback", [resultStr UTF8String]);
if (_refView)
{
//移除视图
[_refView removeFromSuperview];
}
}];
}
void __iosShareSDKShowShareView (int reqID, int platType, void *content, void *observer)
{
NSString *observerStr = nil;
NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
observerStr = [NSString stringWithCString:observer encoding:NSUTF8StringEncoding];
if (content)
{
NSString *contentStr = [NSString stringWithCString:content encoding:NSUTF8StringEncoding];
shareParams = __getShareParamsWithString(contentStr);
}
[ShareSDK showShareEditor:platType
otherPlatformTypes:nil
shareParams:shareParams
onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {
NSMutableDictionary *resultDict = [NSMutableDictionary dictionary];
[resultDict setObject:[NSNumber numberWithInteger:9] forKey:@"action"];
[resultDict setObject:[NSNumber numberWithInteger:state] forKey:@"status"];
[resultDict setObject:[NSNumber numberWithInteger:platformType] forKey:@"platform"];
[resultDict setObject:[NSNumber numberWithInteger:reqID] forKey:@"reqID"];
if (state == SSDKResponseStateFail && error)
{
NSMutableDictionary *errorDict = [NSMutableDictionary dictionary];
[errorDict setObject:[NSNumber numberWithInteger:[error code]] forKey:@"error_code"];
if ([[error userInfo] objectForKey:@"error_message"])
{
if ([[error userInfo] objectForKey:@"error_message"])
{
[errorDict setObject:[[error userInfo] objectForKey:@"error_message"] forKey:@"error_msg"];
}
}
else if ([[error userInfo] objectForKey:@"user_data"])
{
NSDictionary *error_data = [[error userInfo] objectForKey:@"user_data"];
if ([error_data objectForKey:@"error"])
{
[errorDict setObject:[error_data objectForKey:@"error"] forKey:@"error_msg"];
}
if ([error_data objectForKey:@"error_code"])
{
[errorDict setObject:[NSNumber numberWithInteger:[[error_data objectForKey:@"error_code"] integerValue]] forKey:@"error_code"];
}
}
[resultDict setObject:errorDict forKey:@"res"];
}
if (state == SSDKResponseStateSuccess)
{
if ([contentEntity rawData])
{
[resultDict setObject:[contentEntity rawData] forKey:@"res"];
}
}
NSString *resultStr = [MOBFJson jsonStringFromObject:resultDict];
UnitySendMessage([observerStr UTF8String], "_Callback", [resultStr UTF8String]);
}];
}
void __iosShareSDKGetFriendsList (int reqID, int platType, int count , int page, void *observer)
{
SSDKPlatformType shareType = (SSDKPlatformType)platType;
NSString *observerStr = [NSString stringWithCString:observer encoding:NSUTF8StringEncoding];
NSInteger cursor = page;
NSInteger size = count;
if (shareType == SSDKPlatformTypeTwitter)
{
cursor = -1;
}
[ShareSDK getFriends:platType
cursor:cursor
size:size
onStateChanged:^(SSDKResponseState state, SSDKFriendsPaging *paging, NSError *error)
{
NSMutableDictionary *resultDict = [NSMutableDictionary dictionary];
[resultDict setObject:[NSNumber numberWithInteger:2] forKey:@"action"];
[resultDict setObject:[NSNumber numberWithInteger:state] forKey:@"status"];
[resultDict setObject:[NSNumber numberWithInteger:shareType] forKey:@"platform"];
[resultDict setObject:[NSNumber numberWithInteger:reqID] forKey:@"reqID"];
if (state == SSDKResponseStateFail && error)
{
NSMutableDictionary *errorDict = [NSMutableDictionary dictionary];
[errorDict setObject:[NSNumber numberWithInteger:[error code]] forKey:@"error_code"];
if ([[error userInfo] objectForKey:@"error_message"])
{
if ([[error userInfo] objectForKey:@"error_message"])
{
[errorDict setObject:[[error userInfo] objectForKey:@"error_message"] forKey:@"error_msg"];
}
}
else if ([[error userInfo] objectForKey:@"user_data"])
{
NSDictionary *error_data = [[error userInfo] objectForKey:@"user_data"];
if ([error_data objectForKey:@"error"])
{
[errorDict setObject:[error_data objectForKey:@"error"] forKey:@"error_msg"];
}
if ([error_data objectForKey:@"error_code"])
{
[errorDict setObject:[NSNumber numberWithInteger:[[error_data objectForKey:@"error_code"] integerValue]] forKey:@"error_code"];
}
}
[resultDict setObject:errorDict forKey:@"res"];
}
if (state == SSDKResponseStateSuccess)
{
if (paging)
{
NSArray *friends = [NSArray array];
friends = paging.users;
NSMutableDictionary *resDict = [NSMutableDictionary dictionary];
[resDict setObject:friends forKey:@"users"];
[resDict setObject:[NSNumber numberWithInteger:paging.prevCursor] forKey:@"prev_cursor"];
[resDict setObject:[NSNumber numberWithInteger:paging.nextCursor] forKey:@"next_cursor"];
[resDict setObject:[NSNumber numberWithUnsignedInteger:paging.total] forKey:@"total"];
[resDict setObject:[NSNumber numberWithBool:paging.hasNext] forKey:@"has_next"];
[resultDict setObject:resDict forKey:@"res"];
}
}
NSString *resultStr = [MOBFJson jsonStringFromObject:resultDict];
UnitySendMessage([observerStr UTF8String], "_Callback", [resultStr UTF8String]);
}];
}
char * __StringCopy( const char *string)
{
if (string != NULL)
{
char *copyStr = (char*)malloc(strlen(string)+1);
strcpy(copyStr, string);
return copyStr;
}
else
{
return NULL;
}
}
extern const char* __iosShareSDKGetCredential (int platType)
{
SSDKPlatformType shareType = (SSDKPlatformType)platType;
SSDKUser *userInfo = [ShareSDK currentUser:shareType];
SSDKCredential *credential = userInfo.credential;
NSMutableDictionary *resultDict = [NSMutableDictionary dictionary];
[resultDict setObject:[NSNumber numberWithInteger:shareType] forKey:@"type"];
if ([credential available])
{
if ([credential uid])
{
[resultDict setObject:[credential uid] forKey:@"uid"];
}
if ([credential token])
{
[resultDict setObject:[credential token] forKey:@"token"];
}
if ([credential secret])
{
[resultDict setObject:[credential secret] forKey:@"secret"];
}
if ([credential expired])
{
[resultDict setObject:@([[credential expired] timeIntervalSince1970]) forKey:@"expired"];
}
[resultDict setObject:[NSNumber numberWithBool:[credential available]] forKey:@"available"];
}
else
{
[resultDict setObject:[NSNumber numberWithBool:NO] forKey:@"available"];
[resultDict setObject:@"Invalid Authorization" forKey:@"error"];
}
NSString *resultStr = [MOBFJson jsonStringFromObject:resultDict];
return __StringCopy([resultStr UTF8String]);
}
void __iosShareSDKFollowFriend (int reqID, int platType,void *account, void *observer)
{
SSDKPlatformType shareType = (SSDKPlatformType)platType;
NSString *observerStr = [NSString stringWithCString:observer encoding:NSUTF8StringEncoding];
SSDKUser *user = [[SSDKUser alloc]init];
user.uid = [NSString stringWithCString:account encoding:NSUTF8StringEncoding];
if (shareType == SSDKPlatformTypeTencentWeibo)
{
user.uid = nil;
user.nickname = [NSString stringWithCString:account encoding:NSUTF8StringEncoding];
}
[ShareSDK addFriend:shareType
user:user
onStateChanged:^(SSDKResponseState state, SSDKUser *user, NSError *error) {
NSMutableDictionary *resultDict = [NSMutableDictionary dictionary];
[resultDict setObject:[NSNumber numberWithInteger:6] forKey:@"action"];
[resultDict setObject:[NSNumber numberWithInteger:state] forKey:@"status"];
[resultDict setObject:[NSNumber numberWithInteger:shareType] forKey:@"platform"];
[resultDict setObject:[NSNumber numberWithInteger:reqID] forKey:@"reqID"];
if (state == SSDKResponseStateFail && error)
{
NSMutableDictionary *errorDict = [NSMutableDictionary dictionary];
[errorDict setObject:[NSNumber numberWithInteger:[error code]] forKey:@"error_code"];
if ([[error userInfo] objectForKey:@"error_message"])
{
if ([[error userInfo] objectForKey:@"error_message"])
{
[errorDict setObject:[[error userInfo] objectForKey:@"error_message"] forKey:@"error_msg"];
}
}
else if ([[error userInfo] objectForKey:@"user_data"])
{
NSDictionary *error_data = [[error userInfo] objectForKey:@"user_data"];
if ([error_data objectForKey:@"error"])
{
[errorDict setObject:[error_data objectForKey:@"error"] forKey:@"error_msg"];
}
if ([error_data objectForKey:@"error_code"])
{
[errorDict setObject:[NSNumber numberWithInteger:[[error_data objectForKey:@"error_code"] integerValue]]
forKey:@"error_code"];
}
}
[resultDict setObject:errorDict forKey:@"res"];
}
if (state == SSDKResponseStateSuccess)
{
NSDictionary *userRawdata = [NSDictionary dictionaryWithDictionary:[user rawData]];
[resultDict setObject:userRawdata forKey:@"res"];
}
NSString *resultStr = [MOBFJson jsonStringFromObject:resultDict];
UnitySendMessage([observerStr UTF8String], "_Callback", [resultStr UTF8String]);
}];
}
void __iosShareSDKShareWithContentName(int reqID, int platType, void *contentName, void *customHashtable, void *observer)
{
SSDKPlatformType shareType = (SSDKPlatformType)platType;
NSString *contentNodeName = [NSString stringWithCString:contentName encoding:NSUTF8StringEncoding];
NSString *observerStr = [NSString stringWithCString:observer encoding:NSUTF8StringEncoding];
NSDictionary *customFields = nil;
if (customHashtable)
{
customFields = __parseWithHashtable(customHashtable);
}
[ShareSDK shareWithContentName:contentNodeName
platform:shareType
customFields:customFields
onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) {
NSMutableDictionary *resultDict = [NSMutableDictionary dictionary];
[resultDict setObject:[NSNumber numberWithInteger:9] forKey:@"action"];
[resultDict setObject:[NSNumber numberWithInteger:state] forKey:@"status"];
[resultDict setObject:[NSNumber numberWithInteger:platType] forKey:@"platform"];
[resultDict setObject:[NSNumber numberWithInteger:reqID] forKey:@"reqID"];
if (state == SSDKResponseStateFail && error)
{
NSMutableDictionary *errorDict = [NSMutableDictionary dictionary];
[errorDict setObject:[NSNumber numberWithInteger:[error code]] forKey:@"error_code"];
if ([[error userInfo] objectForKey:@"error_message"])
{
if ([[error userInfo] objectForKey:@"error_message"])
{
[errorDict setObject:[[error userInfo] objectForKey:@"error_message"]
forKey:@"error_msg"];
}
}
else if ([[error userInfo] objectForKey:@"user_data"])
{
NSDictionary *error_data = [[error userInfo] objectForKey:@"user_data"];
if ([error_data objectForKey:@"error"])
{
[errorDict setObject:[error_data objectForKey:@"error"] forKey:@"error_msg"];
}
if ([error_data objectForKey:@"error_code"])
{
[errorDict setObject:[NSNumber numberWithInteger:[[error_data objectForKey:@"error_code"] integerValue]]
forKey:@"error_code"];
}
}
else if([[error userInfo] objectForKey:@"error_msg"])
{
if ([[error userInfo] objectForKey:@"error_msg"])
{
[errorDict setObject:[[error userInfo] objectForKey:@"error_msg"]
forKey:@"error_msg"];
}
}
[resultDict setObject:errorDict forKey:@"res"];
}
if (state == SSDKResponseStateSuccess)
{
if ([contentEntity rawData])
{
[resultDict setObject:[contentEntity rawData] forKey:@"res"];
}
}
NSString *resultStr = [MOBFJson jsonStringFromObject:resultDict];
UnitySendMessage([observerStr UTF8String], "_Callback", [resultStr UTF8String]);
}];
}
void __iosShareSDKShowShareMenuWithContentName(int reqID, void *contentName, void *customHashtable, void *platTypes, int x, int y, void *observer)
{
NSString *contentNodeName = [NSString stringWithCString:contentName encoding:NSUTF8StringEncoding];
NSDictionary *customFields = nil;
if (customHashtable)
{
customFields = __parseWithHashtable(customHashtable);
}
NSArray *platTypesArr = nil;
NSMutableArray *actionSheetItems = [NSMutableArray array];
NSString *observerStr = nil;
observerStr = [NSString stringWithCString:observer encoding:NSUTF8StringEncoding];
if (platTypes)
{
NSString *platTypesStr = [NSString stringWithCString:platTypes encoding:NSUTF8StringEncoding];
platTypesArr = [MOBFJson objectFromJSONString:platTypesStr];
}
else
{
platTypesArr = [ShareSDK activePlatforms];
for (id obj in platTypesArr)
{
NSInteger platformInterger = [obj integerValue];
[actionSheetItems addObject:[NSNumber numberWithInteger:platformInterger]];
}
platTypesArr = [actionSheetItems mutableCopy];
}
if ([MOBFDevice isPad])
{
if (!_refView)
{
_refView = [[UIView alloc] initWithFrame:CGRectMake(x, y, 10, 10)];
}
[[UIApplication sharedApplication].keyWindow.rootViewController.view addSubview:_refView];
}
[ShareSDK showShareActionSheet:_refView
items:platTypesArr
contentName:contentNodeName
customFields:customFields
onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {
NSMutableDictionary *resultDict = [NSMutableDictionary dictionary];
[resultDict setObject:[NSNumber numberWithInteger:9] forKey:@"action"];
[resultDict setObject:[NSNumber numberWithInteger:state] forKey:@"status"];
[resultDict setObject:[NSNumber numberWithInteger:platformType] forKey:@"platform"];
[resultDict setObject:[NSNumber numberWithInteger:reqID] forKey:@"reqID"];
if (state == SSDKResponseStateFail && error)
{
NSMutableDictionary *errorDict = [NSMutableDictionary dictionary];
[errorDict setObject:[NSNumber numberWithInteger:[error code]] forKey:@"error_code"];
if ([[error userInfo] objectForKey:@"error_message"])
{
if ([[error userInfo] objectForKey:@"error_message"])
{
[errorDict setObject:[[error userInfo] objectForKey:@"error_message"]
forKey:@"error_msg"];
}
}
else if ([[error userInfo] objectForKey:@"user_data"])
{
NSDictionary *error_data = [[error userInfo] objectForKey:@"user_data"];
if ([error_data objectForKey:@"error"])
{
[errorDict setObject:[error_data objectForKey:@"error"]
forKey:@"error_msg"];
}
else if ([error_data objectForKey:@"error_message"])
{
[errorDict setObject:[error_data objectForKey:@"error_message"]
forKey:@"error_msg"];
}
if ([error_data objectForKey:@"error_code"])
{
[errorDict setObject:[NSNumber numberWithInteger:[[error_data objectForKey:@"error_code"] integerValue]]
forKey:@"error_code"];
}
}
[resultDict setObject:errorDict forKey:@"res"];
}
if (state == SSDKResponseStateSuccess)
{
if ([contentEntity rawData])
{
[resultDict setObject:[contentEntity rawData] forKey:@"res"];
}
}
NSString *resultStr = [MOBFJson jsonStringFromObject:resultDict];
UnitySendMessage([observerStr UTF8String], "_Callback", [resultStr UTF8String]);
if (_refView)
{
//移除视图
[_refView removeFromSuperview];
}
}];
}
void __iosShareSDKShowShareViewWithContentName(int reqID, int platType, void *contentName, void *customHashtable, void *observer)
{
SSDKPlatformType shareType = (SSDKPlatformType)platType;
NSString *contentNodeName = [NSString stringWithCString:contentName encoding:NSUTF8StringEncoding];
NSString *observerStr = [NSString stringWithCString:observer encoding:NSUTF8StringEncoding];
NSDictionary *customFields = nil;
if (customHashtable)
{
customFields = __parseWithHashtable(customHashtable);
}
[ShareSDK showShareEditor:shareType
otherPlatformTypes:nil
contentName:contentNodeName
customFields:customFields
onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {
NSMutableDictionary *resultDict = [NSMutableDictionary dictionary];
[resultDict setObject:[NSNumber numberWithInteger:9] forKey:@"action"];
[resultDict setObject:[NSNumber numberWithInteger:state] forKey:@"status"];
[resultDict setObject:[NSNumber numberWithInteger:platformType] forKey:@"platform"];
[resultDict setObject:[NSNumber numberWithInteger:reqID] forKey:@"reqID"];
if (state == SSDKResponseStateFail && error)
{
NSMutableDictionary *errorDict = [NSMutableDictionary dictionary];
[errorDict setObject:[NSNumber numberWithInteger:[error code]] forKey:@"error_code"];
if ([[error userInfo] objectForKey:@"error_message"])
{
if ([[error userInfo] objectForKey:@"error_message"])
{
[errorDict setObject:[[error userInfo] objectForKey:@"error_message"] forKey:@"error_msg"];
}
}
else if ([[error userInfo] objectForKey:@"user_data"])
{
NSDictionary *error_data = [[error userInfo] objectForKey:@"user_data"];
if ([error_data objectForKey:@"error"])
{
[errorDict setObject:[error_data objectForKey:@"error"] forKey:@"error_msg"];
}
if ([error_data objectForKey:@"error_code"])
{
[errorDict setObject:[NSNumber numberWithInteger:[[error_data objectForKey:@"error_code"] integerValue]] forKey:@"error_code"];
}
}
[resultDict setObject:errorDict forKey:@"res"];
}
if (state == SSDKResponseStateSuccess)
{
if ([contentEntity rawData])
{
[resultDict setObject:[contentEntity rawData] forKey:@"res"];
}
}
NSString *resultStr = [MOBFJson jsonStringFromObject:resultDict];
UnitySendMessage([observerStr UTF8String], "_Callback", [resultStr UTF8String]);
}];
}
#if defined (__cplusplus)
}
#endif
@implementation ShareSDKUnity3DBridge
@end