iOS海外SDK补充接入说名

港澳台

1 工程配置 港澳台

1.1 配置语言

  1. <key>CFBundleDevelopmentRegion</key>
  2. <string>CHT</string>

1.2 配置Facebook

  1. <key>CFBundleURLTypes</key>
  2. <array>
  3. <dict>
  4. <key>CFBundleTypeRole</key>
  5. <string>Editor</string>
  6. <key>CFBundleURLName</key>
  7. <string></string>
  8. <key>CFBundleURLSchemes</key>
  9. <array>
  10. <string>fb1234567890</string>
  11. </array>
  12. </dict>
  13. </array>
  14. <key>FacebookAppID</key>
  15. <string>1234567890</string>
  16. <key>FacebookDisplayName</key>
  17. <string>Demo</string>
  18. <key>LSApplicationQueriesSchemes</key>
  19. <array>
  20. <string>fbauth2</string>
  21. <string>fbapi</string>
  22. <string>fbshareextension</string>
  23. </array>

注意:FacebookAppID、FacebookDisplayName必须与facebook后台一致

2 Facebook接口 港澳台

2.1 FB好友列表

2.1.1 好友列表回调

  1. void friendListCallBack(bool result,const char* jsonStr)
  2. {
  3. if (result) {
  4. NSString *dataStr = [NSString stringWithUTF8String:jsonStr];
  5. NSData *data = [dataStr dataUsingEncoding:NSUTF8StringEncoding];
  6. NSError *error = nil;
  7. NSDictionary* dic =[NSJSONSerialization
  8. JSONObjectWithData:data //1
  9. options:kNilOptions
  10. error:&error];
  11. if (error) {
  12. //获取好友列表失败!
  13. return;
  14. }
  15. NSArray *array = [dic objectForKey:@"data"];
  16. for (int i=0; i<[array count]; i++) {
  17. NSDictionary *tmpDic = [array objectAtIndex:i];
  18. NSString *name = [tmpDic objectForKey:@"name"]; //facebook用户名称
  19. NSString *userId = [tmpDic objectForKey:@"id"]; //facebook用户id
  20. NSString *Ourpalm_ID = [tmpDic objectForKey:@"Ourpalm_ID"];//掌趣用户id
  21. }
  22. NSNumber *next = [dic objectForKey:@"next"]; //用于判断是否还有下一页数据
  23. } else {
  24. //获取好友列表失败!
  25. }
  26. }

数据格式说明:

  1. {
  2. count = 1;
  3. data = (
  4. {
  5. "Ourpalm_ID" = 掌趣用户id;
  6. id = facebook用户id;
  7. name = facebook用户名称;
  8. picture = {
  9. data = {
  10. url = "用户图片地址";
  11. };
  12. };
  13. },
  14. );
  15. next = 0; //是否有下一页
  16. previous = 0; //是否有上一页
  17. }

2.1.2 获取app好友接口

  1. //必须先调用此接口获取app好友首页数据
  2. OPGameSDK::GetInstance().ChannelSpreads("FB_GetAppFriendList",(void*)friendListCallBack);
  3. //获取下一页
  4. OPGameSDK::GetInstance().ChannelSpreads("FB_GetFriendList_Next");

2.2 FB分享接口

2.2.1 分享回调

  1. void fbShareCallback(int errorCode, const char* jsonStr)
  2. {
  3. OPUserType type = OPGameSDK::GetInstance().mShareType;
  4. if (type == kFBShare) {
  5. cout<<"facebook分享链接"<<endl;
  6. }else if(type == kFBShareImage){
  7. cout<<"facebook分享图片"<<endl;
  8. }else if(type == kFBInviteFriend){
  9. cout<<"facebook邀请"<<endl;
  10. }
  11. if (errorCode == 1) {
  12. OPSDK::GetInstance().ShowMsg("分享成功");
  13. }else if (errorCode == 0){
  14. OPSDK::GetInstance().ShowMsg("取消分享");
  15. }else{
  16. OPSDK::GetInstance().ShowMsg("分享失败");
  17. }
  18. }

2.2.2 邀请好友

  1. oid OPSDK::inviteFriend()
  2. {
  3. OPGameSDK::GetInstance().ShareCallBack(fbShareCallback);
  4. //邀请好友
  5. Json::Value shareJson;
  6. shareJson["title"] = Json::Value("title");//标题
  7. shareJson["message"] = Json::Value("message");//消息
  8. Json::FastWriter fast_writer;
  9. string shareStr = fast_writer.write(shareJson);
  10. OPGameSDK::GetInstance().ShareToThirdPlatform(shareStr.c_str(),kFBInviteFriend);
  11. }

回调数据格式:

  1. {
  2. request = 1501199046846374;
  3. to = (
  4. 364167064041191 //FB好友的用户id
  5. );
  6. "to[0]" = 364167064041191; //FB好友的用户id
  7. }

2.2.3 分享链接

  1. void OPSDK::shareLink()
  2. {
  3. //设置分享回调
  4. OPGameSDK::GetInstance().ShareCallBack(fbShareCallback);
  5. Json::Value shareJson;
  6. shareJson["link"] = Json::Value("https://developers.facebook.com/docs/ios/share/");
  7. Json::FastWriter fast_writer;
  8. string shareStr = fast_writer.write(shareJson);
  9. OPGameSDK::GetInstance().ShareToThirdPlatform(shareStr.c_str(),kFBShare);
  10. }

2.2.4 分享图片

  1. void OPSDK::shareImage()
  2. {
  3. //设置分享回调
  4. OPGameSDK::GetInstance().ShareCallBack(fbShareCallback);
  5. //分享
  6. Json::Value shareJson;
  7. //网络图片
  8. //shareJson["picture"] = Json::Value("http://content.game-bean.com/image/98kof/pc/pc_banner01.jpg");
  9. //本地图片
  10. NSString *filePath = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"localPic.png"];
  11. shareJson["picture"] = Json::Value([filePath UTF8String]);
  12. Json::FastWriter fast_writer;
  13. string shareStr = fast_writer.write(shareJson);
  14. OPGameSDK::GetInstance().ShareToThirdPlatform(shareStr.c_str(),kFBShareImage);
  15. }

3 OpenInstall接口 港澳台

3.1 配置Info.plist文件

  1. //com.openinstall.APP_KEY请与运营人员获取
  2. <key>com.openinstall.APP_KEY</key>
  3. <string>sw1ij8</string>
  1. <key>CFBundleURLTypes</key>
  2. <array>
  3. <dict>
  4. <key>CFBundleTypeRole</key>
  5. <string>Editor</string>
  6. <key>CFBundleURLName</key>
  7. <string>openinstall</string>
  8. <key>CFBundleURLSchemes</key>
  9. <array>
  10. <string>sw1ij8</string>
  11. </array>
  12. </dict>
  13. </array>

3.2 配置entitlements

  1. <key>com.apple.developer.associated-domains</key>
  2. <array>
  3. <string>applinks:sw1ij8.openinstall.io</string>
  4. </array>

3.3 设置openURL

  1. - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler{
  2. //处理通过openinstall一键唤起App时传递的数据
  3. OPGameSDK::GetInstance().ChannelSpreads("ApplicationContinueUserActivity",(void*)application,(void*)userActivity);
  4. return YES;
  5. }

3.4 OpenInstall动态参数回调

  1. void openInstallParamsCallback(const char* type, const char* jsonStr)
  2. {
  3. if (strcmp(type, "InstallParams") == 0) {
  4. //安装获取动态参数
  5. }else if (strcmp(type, "WakeUpParams") == 0) {
  6. //唤醒时获取动态参数
  7. }
  8. }
  9. //设置openinstall回调接口
  10. OPGameSDK::GetInstance().ChannelSpreads("GetOpenInstallParams",(void*)openInstallParamsCallback);

3.5 OpenInstall分享

  1. void openInstallShareCallback(bool result, const char* jsonStr)
  2. {
  3. if (result) {
  4. OPSDK::GetInstance().ShowMsg("分享成功");
  5. }else{
  6. OPSDK::GetInstance().ShowMsg("分享失败");
  7. }
  8. }
  9. void OPSDK::ShareOpenInstall()
  10. {
  11. Json::Value shareJson;
  12. shareJson["text"] = Json::Value("分享文本");
  13. shareJson["sharekey"] = Json::Value("abcdef");
  14. Json::FastWriter fast_writer;
  15. string tmp = fast_writer.write(shareJson);
  16. OPGameSDK::GetInstance().ChannelSpreads("ShareOpenInstall",(void*)openInstallShareCallback,tmp.c_str());
  17. }

欧美

1 工程配置 欧美

1.1 配置语言

  1. <key>CFBundleDevelopmentRegion</key>
  2. <string>EN</string>

1.2 配置计费绑定开

  1. true:默认值,计费弹出绑定FB界面
  2. false:计费不弹出绑定FB界面
  3. <key>chargeBindSwitch</key>
  4. <false/>

1.3 配置Facebook

  1. <key>CFBundleURLTypes</key>
  2. <array>
  3. <dict>
  4. <key>CFBundleTypeRole</key>
  5. <string>Editor</string>
  6. <key>CFBundleURLName</key>
  7. <string></string>
  8. <key>CFBundleURLSchemes</key>
  9. <array>
  10. <string>fb1234567890</string>
  11. </array>
  12. </dict>
  13. </array>
  14. <key>FacebookAppID</key>
  15. <string>1234567890</string>
  16. <key>FacebookDisplayName</key>
  17. <string>Demo</string>
  18. <key>LSApplicationQueriesSchemes</key>
  19. <array>
  20. <string>fbauth2</string>
  21. <string>fbapi</string>
  22. <string>fbshareextension</string>
  23. </array>

注意:FacebookAppID、FacebookDisplayName必须与facebook后台一致

2 Facebook接口 欧美

2.1 FB好友列表

2.1.1 好友列表回调

  1. void friendListCallBack(bool result,const char* jsonStr)
  2. {
  3. if (result) {
  4. NSString *dataStr = [NSString stringWithUTF8String:jsonStr];
  5. NSData *data = [dataStr dataUsingEncoding:NSUTF8StringEncoding];
  6. NSError *error = nil;
  7. NSDictionary* dic =[NSJSONSerialization
  8. JSONObjectWithData:data //1
  9. options:kNilOptions
  10. error:&error];
  11. if (error) {
  12. //获取好友列表失败!
  13. return;
  14. }
  15. NSArray *array = [dic objectForKey:@"data"];
  16. for (int i=0; i<[array count]; i++) {
  17. NSDictionary *tmpDic = [array objectAtIndex:i];
  18. NSString *name = [tmpDic objectForKey:@"name"]; //facebook用户名称
  19. NSString *userId = [tmpDic objectForKey:@"id"]; //facebook用户id
  20. NSString *Ourpalm_ID = [tmpDic objectForKey:@"Ourpalm_ID"];//掌趣用户id
  21. }
  22. NSNumber *next = [dic objectForKey:@"next"]; //用于判断是否还有下一页数据
  23. } else {
  24. //获取好友列表失败!
  25. }
  26. }

数据格式说明:

  1. {
  2. count = 1;
  3. data = (
  4. {
  5. "Ourpalm_ID" = 掌趣用户id;
  6. id = facebook用户id;
  7. name = facebook用户名称;
  8. picture = {
  9. data = {
  10. url = "用户图片地址";
  11. };
  12. };
  13. },
  14. );
  15. next = 0; //是否有下一页
  16. previous = 0; //是否有上一页
  17. }

3.1.2 获取app好友接口

  1. //必须先调用此接口获取app好友首页数据
  2. OPGameSDK::GetInstance().ChannelSpreads("FB_GetAppFriendList",(void*)friendListCallBack);
  3. //获取下一页
  4. OPGameSDK::GetInstance().ChannelSpreads("FB_GetFriendList_Next");

2.2 FB分享接口

2.2.1 分享回调
  1. void fbShareCallback(int errorCode, const char* jsonStr)
  2. {
  3. OPUserType type = OPGameSDK::GetInstance().mShareType;
  4. if (type == kFBShare) {
  5. cout<<"facebook分享链接"<<endl;
  6. }else if(type == kFBShareImage){
  7. cout<<"facebook分享图片"<<endl;
  8. }else if(type == kFBInviteFriend){
  9. cout<<"facebook邀请"<<endl;
  10. }
  11. if (errorCode == 1) {
  12. OPSDK::GetInstance().ShowMsg("分享成功");
  13. }else if (errorCode == 0){
  14. OPSDK::GetInstance().ShowMsg("取消分享");
  15. }else{
  16. OPSDK::GetInstance().ShowMsg("分享失败");
  17. }
  18. }
2.2.2 邀请好友
  1. oid OPSDK::inviteFriend()
  2. {
  3. OPGameSDK::GetInstance().ShareCallBack(fbShareCallback);
  4. //邀请好友
  5. Json::Value shareJson;
  6. shareJson["title"] = Json::Value("title");//标题
  7. shareJson["message"] = Json::Value("message");//消息
  8. Json::FastWriter fast_writer;
  9. string shareStr = fast_writer.write(shareJson);
  10. OPGameSDK::GetInstance().ShareToThirdPlatform(shareStr.c_str(),kFBInviteFriend);
  11. }

回调数据格式:

  1. {
  2. request = 1501199046846374;
  3. to = (
  4. 364167064041191 //FB好友的用户id
  5. );
  6. "to[0]" = 364167064041191; //FB好友的用户id
  7. }
2.2.3 分享链接
  1. void OPSDK::shareLink()
  2. {
  3. //设置分享回调
  4. OPGameSDK::GetInstance().ShareCallBack(fbShareCallback);
  5. Json::Value shareJson;
  6. shareJson["link"] = Json::Value("https://developers.facebook.com/docs/ios/share/");
  7. Json::FastWriter fast_writer;
  8. string shareStr = fast_writer.write(shareJson);
  9. OPGameSDK::GetInstance().ShareToThirdPlatform(shareStr.c_str(),kFBShare);
  10. }
2.2.4 分享图片
  1. void OPSDK::shareImage()
  2. {
  3. //设置分享回调
  4. OPGameSDK::GetInstance().ShareCallBack(fbShareCallback);
  5. //分享
  6. Json::Value shareJson;
  7. //网络图片
  8. //shareJson["picture"] = Json::Value("http://content.game-bean.com/image/98kof/pc/pc_banner01.jpg");
  9. //本地图片
  10. NSString *filePath = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"localPic.png"];
  11. shareJson["picture"] = Json::Value([filePath UTF8String]);
  12. Json::FastWriter fast_writer;
  13. string shareStr = fast_writer.write(shareJson);
  14. OPGameSDK::GetInstance().ShareToThirdPlatform(shareStr.c_str(),kFBShareImage);
  15. }

3 绑定账号 欧美

3.1 查询绑定接口
  1. NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"GetBindStatus",@"ChannelSpreadName", nil];
  2. bool bindStatus = OPGameSDK::GetInstance().GetChannelSpreads((void*)dic);
  3. if (bindStatus) {
  4. OPSDK::GetInstance().ShowMsg("快登已绑定第三方账号");
  5. }else{
  6. OPSDK::GetInstance().ShowMsg("快登未绑定第三方账号");
  7. }
3.2 设置绑定回调
  1. void bindAccountCallBack(const char* type,const char* jsonStr)
  2. {
  3. if (strcmp(type, "BindAccountSuccess") == 0) {
  4. //绑定成功
  5. }else if (strcmp(type, "UnBindAccountSuccess") == 0){
  6. //解绑成功
  7. }
  8. }
  9. OPGameSDK::GetInstance().ChannelSpreads("SetBindAccountCallback",(void*)bindAccountCallBack);
3.3 展示绑定账号
  1. void OPSDK::ShowBindAccount()
  2. {
  3. OPGameSDK::GetInstance().ChannelSpreads("ShowBindAccount");
  4. }

4 切换账号 欧美

4.1 设置切换账号回调
  1. void switchAccountCallBack(const char* type,const char* jsonStr)
  2. {
  3. if (strcmp(type, "SwitchAccountSuccess") == 0) {
  4. //切换成功
  5. }
  6. }
  7. OPGameSDK::GetInstance().ChannelSpreads("SetSwitchAccountCallback",(void*)switchAccountCallBack);
4.2 展示切换账号
  1. void OPSDK::ShowSwitchAccount()
  2. {
  3. OPGameSDK::GetInstance().ChannelSpreads("ShowSwitchAccount");
  4. }

5 绑定邮箱接口 欧美

5.1 绑定邮箱接口
  1. void bindEmailCallback(bool result, const char* jsonStr)
  2. {
  3. if(result){
  4. Json::Reader json_reader;
  5. Json::Value json_object;
  6. if (!json_reader.parse(jsonStr, json_object)){
  7. return;
  8. }
  9. string emailName = json_object["emailName"].asString();
  10. }
  11. }
  12. void OPSDK::ShowBindEmail()
  13. {
  14. OPGameSDK::GetInstance().ChannelSpreads("ShowBindEmail",(void*)bindEmailCallback);
  15. }

数据示例:

  1. {
  2. "status":"1",
  3. "code":"",
  4. "emailName":"xxx@xxx",
  5. "desc":""
  6. }

6 useid登录验证接口 欧美

6.1 功能介绍

该接口暂时只给coc用,sdk登录成功后调用此接口,游戏客户端传入掌趣uid及其它信息,sdk去用户中心校验此uid是否存在,如果校验成功,sdk会返回此uid对应的登录数据,同时保存本地快登标识,后续再次调用sdk登录登录时,SDK拿新的本地快登标识进行登录。
如果不存在,会返回校验的错误信息。

6.2 接口
  1. void checkLoginUserIdCallback(bool result,const char* jsonStr)
  2. {
  3. cout<<"*********checkLoginUserIdCallback********"<<endl;
  4. if (result) {
  5. cout<<jsonStr<<endl;
  6. //userId校验成功,进入登录页面,重新登陆开始游戏
  7. dispatch_async(dispatch_get_main_queue(), ^{
  8. OPSDK::GetInstance().ShowMsg("userId校验成功,进入登录页面,重新登陆开始游戏");
  9. });
  10. }else{
  11. //失败
  12. dispatch_async(dispatch_get_main_queue(), ^{
  13. OPSDK::GetInstance().ShowMsg("userId校验失败");
  14. });
  15. }
  16. }
  17. void OPSDK::CheckLoginUserId()
  18. {
  19. Json::Value json;
  20. json["userId"] = userId;//掌趣用户id
  21. json["timestamp"] = timestamp;//时间戳
  22. json["sign"] = sign;//签名,md5(userId+timestamp+secretkey),secretkey由运营提供
  23. Json::FastWriter fast_writer;
  24. string userInfo = fast_writer.write(json);
  25. OPGameSDK::GetInstance().ChannelSpreads("CheckLoginUserId",(void*)checkLoginUserIdCallback,(void*)userInfo.c_str());
  26. }

7 沐瞳MSDK统计接口

7.1 获取设备唯一标识
  1. OPGameSDK::GetInstance().GetDid();
7.2 获取设备信息
  1. OPGameSDK::GetInstance().GetCallbackInfo();
7.3 设置游戏业务版本号
  1. OPGameSDK::GetInstance().UpdateClientVersion("1.0.0");
7.4 设置用户信息接口
  1. OPSDKUserInfo userInfo;
  2. userInfo.mGame_RoleId = "1234"; //游戏角色id(必填)
  3. userInfo.mGame_RoleName = "rolename"; //游戏角色名称(必填)
  4. userInfo.mGame_ServerId = "1"; //游戏服务器id(必填)
  5. userInfo.mGame_ServerName = "s1"; //游戏服务器名称(必填)
  6. userInfo.mGame_RoleLevel = "1"; //游戏角色等级(可选)
  7. userInfo.mGame_RoleVipLevel = "1"; //游戏角色vip等级(可选)
  8. userInfo.mAccountId = "1234564645";
  9. userInfo.mGameLanguage = "en_GB";
  10. OPGameSDK::GetInstance().SetUserInfo(userInfo);
7.5 发送MSDK事件追踪
  1. Json::Value data;
  2. data["step"] = Json::Value("1013");
  3. data["action"] = Json::Value("LOGIN_RIGISTER");
  4. Json::FastWriter fast_writer;
  5. string dataStr = fast_writer.write(data);
  6. OPGameSDK::GetInstance().TrackEvent("create_filter", dataStr.c_str());
7.6 发送三方归因事件追踪
7.6.1 创建角色
  1. OPGameSDK::GetInstance().TrackAttributionEvent("create_role");
7.6.2 充值事件
  1. Json::Value data;
  2. data["content_id"] = "test_propId"; //商品ID
  3. data["currency"] = "USD"; //货币类型
  4. data["revenue"] = 9.99; //商品价格
  5. Json::FastWriter fast_writer;
  6. string dataStr = fast_writer.write(data);
  7. OPGameSDK::GetInstance().TrackAttributionEvent("purchase",dataStr.c_str());

日本

1 工程配置 日本

1.1 配置语言

  1. <key>CFBundleDevelopmentRegion</key>
  2. <string>JAPAN</string>

1.2 配置Twitter

  1. <key>CFBundleURLTypes</key>
  2. <array>
  3. <dict>
  4. <key>CFBundleTypeRole</key>
  5. <string>Editor</string>
  6. <key>CFBundleURLSchemes</key>
  7. <array>
  8. <string>twitterkit-APIKey</string>
  9. </array>
  10. </dict>
  11. </array>
  12. <key>APIKey</key>
  13. <string>Fn9asdfasdfasdfqJw</string>
  14. <key>APISecret</key>
  15. <string>cHg4vasdfasdfasdfasfdsfasdfasdfafdaasdfgx27Qbvfwu</string>
  16. <key>LSApplicationQueriesSchemes</key>
  17. <array>
  18. <string>twitter</string>
  19. <string>twitterauth</string>
  20. </array>

2 Twitter接口 日本

2.1 Twitter分享接口

2.1.1 分享回调

  1. void twitterShareCallback(int errorCode, const char* jsonStr)
  2. {
  3. if (errorCode == 1) {
  4. OPSDK::GetInstance().ShowMsg("分享成功");
  5. }else if (errorCode == 0){
  6. OPSDK::GetInstance().ShowMsg("取消分享");
  7. }else{
  8. OPSDK::GetInstance().ShowMsg("分享失败");
  9. }
  10. }

2.1.2 分享链接

  1. void OPSDK::shareLink()
  2. {
  3. //设置分享回调
  4. OPGameSDK::GetInstance().ShareCallBack(twitterShareCallback);
  5. Json::Value shareJson;
  6. shareJson["link"] = Json::Value("http://www.baidu.com");
  7. shareJson["picture"] = Json::Value("//content.gamebean.com/image/ourpalmcn/logo.jpg");
  8. shareJson["description"] = Json::Value("Twitter分享测试!");
  9. Json::FastWriter fast_writer;
  10. string shareStr = fast_writer.write(shareJson);
  11. OPGameSDK::GetInstance().ShareToThirdPlatform(shareStr.c_str());
  12. }

3 Facebook接口 日本

3.1 IDFA广告主跟踪

  1. [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
  2. if (status == ATTrackingManagerAuthorizationStatusAuthorized) {
  3. OPGameSDK::GetInstance().ChannelSpreads("SetAdvertiserTrackingEnabled");
  4. }else{
  5. OPGameSDK::GetInstance().ChannelSpreads("SetAdvertiserTrackingDisabled");
  6. }
  7. }];

3.2 FB分享接口

3.2.1 分享回调

  1. void fbShareCallback(int errorCode, const char* jsonStr)
  2. {
  3. if (errorCode == 1) {
  4. OPSDK::GetInstance().ShowMsg("分享成功");
  5. }else if (errorCode == 0){
  6. OPSDK::GetInstance().ShowMsg("取消分享");
  7. }else{
  8. OPSDK::GetInstance().ShowMsg("分享失败");
  9. }
  10. }

3.2.2 分享链接

  1. void OPSDK::fbShareLink()
  2. {
  3. //设置分享回调
  4. OPGameSDK::GetInstance().ShareCallBack(fbShareCallback);
  5. //分享
  6. Json::Value shareJson;
  7. shareJson["link"] = Json::Value("http://www.baidu.com");
  8. shareJson["picture"] = Json::Value("//content.gamebean.com/image/ourpalmcn/logo.jpg");
  9. shareJson["description"] = Json::Value("FB分享测试!");
  10. Json::FastWriter fast_writer;
  11. string shareStr = fast_writer.write(shareJson);
  12. OPGameSDK::GetInstance().ShareToThirdPlatform(shareStr.c_str(),kFBShare);
  13. }

3.2.3 分享图片

  1. void OPSDK::fbShareImage()
  2. {
  3. //设置分享回调
  4. OPGameSDK::GetInstance().ShareCallBack(fbShareCallback);
  5. //分享
  6. Json::Value shareJson;
  7. //网络图片
  8. // shareJson["picture"] = Json::Value("http://content.game-bean.com/image/98kof/pc/pc_banner01.jpg");
  9. //本地图片
  10. NSString *filePath = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"localPic.png"];
  11. shareJson["picture"] = Json::Value([filePath UTF8String]);
  12. Json::FastWriter fast_writer;
  13. string shareStr = fast_writer.write(shareJson);
  14. OPGameSDK::GetInstance().ShareToThirdPlatform(shareStr.c_str(),kFBShareImage);
  15. }

3.2.4 邀请好友

  1. void OPSDK::fbShareInvite()
  2. {
  3. OPGameSDK::GetInstance().ShareCallBack(fbShareCallback);
  4. //分享
  5. Json::Value shareJson;
  6. shareJson["title"] = Json::Value("title"); //标题
  7. shareJson["message"] = Json::Value("message"); //消息
  8. Json::FastWriter fast_writer;
  9. string shareStr = fast_writer.write(shareJson);
  10. OPGameSDK::GetInstance().ShareToThirdPlatform(shareStr.c_str(),kFBInviteFriend);
  11. }

4 OpenInstall接口 日本

4.1 配置Info.plist文件

  1. //com.openinstall.APP_KEY请与运营人员获取
  2. <key>com.openinstall.APP_KEY</key>
  3. <string>sw1ij8</string>
  1. <key>CFBundleURLTypes</key>
  2. <array>
  3. <dict>
  4. <key>CFBundleTypeRole</key>
  5. <string>Editor</string>
  6. <key>CFBundleURLName</key>
  7. <string>openinstall</string>
  8. <key>CFBundleURLSchemes</key>
  9. <array>
  10. <string>sw1ij8</string>
  11. </array>
  12. </dict>
  13. </array>

4.2 配置entitlements

  1. <key>com.apple.developer.associated-domains</key>
  2. <array>
  3. <string>applinks:sw1ij8.openinstall.io</string>
  4. </array>

4.3 设置openURL

  1. - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler{
  2. //处理通过openinstall一键唤起App时传递的数据
  3. OPGameSDK::GetInstance().ChannelSpreads("ApplicationContinueUserActivity",(void*)application,(void*)userActivity);
  4. return YES;
  5. }

4.4 OpenInstall动态参数回调

  1. void openInstallParamsCallback(const char* type, const char* jsonStr)
  2. {
  3. if (strcmp(type, "InstallParams") == 0) {
  4. //安装获取动态参数
  5. }else if (strcmp(type, "WakeUpParams") == 0) {
  6. //唤醒时获取动态参数
  7. }
  8. }
  9. //设置openinstall回调接口
  10. OPGameSDK::GetInstance().ChannelSpreads("GetOpenInstallParams",(void*)openInstallParamsCallback);

4.5 OpenInstall分享

  1. void openInstallShareCallback(bool result, const char* jsonStr)
  2. {
  3. if (result) {
  4. OPSDK::GetInstance().ShowMsg("分享成功");
  5. }else{
  6. OPSDK::GetInstance().ShowMsg("分享失败");
  7. }
  8. }
  9. void OPSDK::ShareOpenInstall()
  10. {
  11. Json::Value shareJson;
  12. shareJson["text"] = Json::Value("分享文本");
  13. shareJson["sharekey"] = Json::Value("abcdef");
  14. Json::FastWriter fast_writer;
  15. string tmp = fast_writer.write(shareJson);
  16. OPGameSDK::GetInstance().ChannelSpreads("ShareOpenInstall",(void*)openInstallShareCallback,tmp.c_str());
  17. }

韩国

1 工程配置 韩国

1.1 配置语言

  1. <key>CFBundleDevelopmentRegion</key>
  2. <string>CHT</string>

1.2 配置kakao

  1. <key>KakaoGameConfiguration</key>
  2. <dict>
  3. <key>AppId</key>
  4. <string>xxxx</string>
  5. <key>AppSecret</key>
  6. <string>3daxxxxxxxxxxxxxxxxxd9b</string>
  7. <key>AppVersion</key>
  8. <string>1.0.0</string>
  9. <key>DebugLevel</key>
  10. <string>verbose</string>
  11. <key>ServerType</key>
  12. <string>real</string>
  13. </dict>

1.3 配置Facebook

  1. <key>CFBundleURLTypes</key>
  2. <array>
  3. <dict>
  4. <key>CFBundleTypeRole</key>
  5. <string>Editor</string>
  6. <key>CFBundleURLName</key>
  7. <string></string>
  8. <key>CFBundleURLSchemes</key>
  9. <array>
  10. <string>fb1234567890</string>
  11. </array>
  12. </dict>
  13. </array>
  14. <key>FacebookAppID</key>
  15. <string>1234567890</string>
  16. <key>FacebookDisplayName</key>
  17. <string>Demo</string>
  18. <key>LSApplicationQueriesSchemes</key>
  19. <array>
  20. <string>fbauth2</string>
  21. <string>fbapi</string>
  22. <string>fbshareextension</string>
  23. </array>

注意:FacebookAppID、FacebookDisplayName必须与facebook后台一致

2 Facebook接口 韩国

2.1 FB好友列表

2.1.1 好友列表回调

  1. void friendListCallBack(bool result,const char* jsonStr)
  2. {
  3. if (result) {
  4. NSString *dataStr = [NSString stringWithUTF8String:jsonStr];
  5. NSData *data = [dataStr dataUsingEncoding:NSUTF8StringEncoding];
  6. NSError *error = nil;
  7. NSDictionary* dic =[NSJSONSerialization
  8. JSONObjectWithData:data //1
  9. options:kNilOptions
  10. error:&error];
  11. if (error) {
  12. //获取好友列表失败!
  13. return;
  14. }
  15. NSArray *array = [dic objectForKey:@"data"];
  16. for (int i=0; i<[array count]; i++) {
  17. NSDictionary *tmpDic = [array objectAtIndex:i];
  18. NSString *name = [tmpDic objectForKey:@"name"]; //facebook用户名称
  19. NSString *userId = [tmpDic objectForKey:@"id"]; //facebook用户id
  20. NSString *Ourpalm_ID = [tmpDic objectForKey:@"Ourpalm_ID"];//掌趣用户id
  21. }
  22. NSNumber *next = [dic objectForKey:@"next"]; //用于判断是否还有下一页数据
  23. } else {
  24. //获取好友列表失败!
  25. }
  26. }

数据格式说明:

  1. {
  2. count = 1;
  3. data = (
  4. {
  5. "Ourpalm_ID" = 掌趣用户id;
  6. id = facebook用户id;
  7. name = facebook用户名称;
  8. picture = {
  9. data = {
  10. url = "用户图片地址";
  11. };
  12. };
  13. },
  14. );
  15. next = 0; //是否有下一页
  16. previous = 0; //是否有上一页
  17. }

2.1.2 获取app好友接口

  1. //必须先调用此接口获取app好友首页数据
  2. OPGameSDK::GetInstance().ChannelSpreads("FB_GetAppFriendList",(void*)friendListCallBack);
  3. //获取下一页
  4. OPGameSDK::GetInstance().ChannelSpreads("FB_GetFriendList_Next");

2.1.3 获取非app好友接口

  1. //必须先调用此接口获取非app好友首页数据
  2. OPGameSDK::GetInstance().ChannelSpreads("FB_GetInviteFriendList",(void*)friendListCallBack);
  3. //获取下一页
  4. OPGameSDK::GetInstance().ChannelSpreads("FB_GetFriendList_Next");

2.2 FB分享接口

2.2.1 分享回调

  1. void fbShareCallback(int errorCode, const char* jsonStr)
  2. {
  3. OPUserType type = OPGameSDK::GetInstance().mShareType;
  4. if (type == kFBShare) {
  5. cout<<"facebook分享链接"<<endl;
  6. }else if(type == kFBShareImage){
  7. cout<<"facebook分享图片"<<endl;
  8. }else if(type == kFBInviteFriend){
  9. cout<<"facebook邀请"<<endl;
  10. }
  11. if (errorCode == 1) {
  12. OPSDK::GetInstance().ShowMsg("分享成功");
  13. }else if (errorCode == 0){
  14. OPSDK::GetInstance().ShowMsg("取消分享");
  15. }else{
  16. OPSDK::GetInstance().ShowMsg("分享失败");
  17. }
  18. }

2.2.2 邀请好友

  1. oid OPSDK::inviteFriend(const char* receiverid)
  2. {
  3. OPGameSDK::GetInstance().ShareCallBack(fbShareCallback);
  4. //邀请好友
  5. Json::Value shareJson;
  6. shareJson["title"] = Json::Value("title");//标题
  7. shareJson["message"] = Json::Value("message");//消息
  8. shareJson["receiverId"] = Json::Value(receiverid);//facebook好友ID
  9. Json::FastWriter fast_writer;
  10. string shareStr = fast_writer.write(shareJson);
  11. OPGameSDK::GetInstance().ShareToThirdPlatform(shareStr.c_str(),kFBInviteFriend);
  12. }

回调数据格式:

  1. {
  2. request = 1501199046846374;
  3. to = (
  4. 364167064041191 //FB好友的用户id
  5. );
  6. "to[0]" = 364167064041191; //FB好友的用户id
  7. }

2.2.3 分享链接

  1. void OPSDK::shareLink()
  2. {
  3. //设置分享回调
  4. OPGameSDK::GetInstance().ShareCallBack(fbShareCallback);
  5. Json::Value shareJson;
  6. shareJson["link"] = Json::Value("https://developers.facebook.com/docs/ios/share/");
  7. Json::FastWriter fast_writer;
  8. string shareStr = fast_writer.write(shareJson);
  9. OPGameSDK::GetInstance().ShareToThirdPlatform(shareStr.c_str(),kFBShare);
  10. }

2.2.4 分享图片

  1. void OPSDK::shareImage()
  2. {
  3. //设置分享回调
  4. OPGameSDK::GetInstance().ShareCallBack(fbShareCallback);
  5. //分享
  6. Json::Value shareJson;
  7. //网络图片
  8. //shareJson["picture"] = Json::Value("http://content.game-bean.com/image/98kof/pc/pc_banner01.jpg");
  9. //本地图片
  10. NSString *filePath = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"localPic.png"];
  11. shareJson["picture"] = Json::Value([filePath UTF8String]);
  12. Json::FastWriter fast_writer;
  13. string shareStr = fast_writer.write(shareJson);
  14. OPGameSDK::GetInstance().ShareToThirdPlatform(shareStr.c_str(),kFBShareImage);
  15. }

3 OpenInstall接口 韩国

3.1 配置Info.plist文件

  1. //com.openinstall.APP_KEY请与运营人员获取
  2. <key>com.openinstall.APP_KEY</key>
  3. <string>sw1ij8</string>
  1. <key>CFBundleURLTypes</key>
  2. <array>
  3. <dict>
  4. <key>CFBundleTypeRole</key>
  5. <string>Editor</string>
  6. <key>CFBundleURLName</key>
  7. <string>openinstall</string>
  8. <key>CFBundleURLSchemes</key>
  9. <array>
  10. <string>sw1ij8</string>
  11. </array>
  12. </dict>
  13. </array>

3.2 配置entitlements

  1. <key>com.apple.developer.associated-domains</key>
  2. <array>
  3. <string>applinks:sw1ij8.openinstall.io</string>
  4. </array>

3.3 设置openURL

  1. - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler{
  2. //处理通过openinstall一键唤起App时传递的数据
  3. OPGameSDK::GetInstance().ChannelSpreads("ApplicationContinueUserActivity",(void*)application,(void*)userActivity);
  4. return YES;
  5. }

3.4 OpenInstall动态参数回调

  1. void openInstallParamsCallback(const char* type, const char* jsonStr)
  2. {
  3. if (strcmp(type, "InstallParams") == 0) {
  4. //安装获取动态参数
  5. }else if (strcmp(type, "WakeUpParams") == 0) {
  6. //唤醒时获取动态参数
  7. }
  8. }
  9. //设置openinstall回调接口
  10. OPGameSDK::GetInstance().ChannelSpreads("GetOpenInstallParams",(void*)openInstallParamsCallback);

3.5 OpenInstall分享

  1. void openInstallShareCallback(bool result, const char* jsonStr)
  2. {
  3. if (result) {
  4. OPSDK::GetInstance().ShowMsg("分享成功");
  5. }else{
  6. OPSDK::GetInstance().ShowMsg("分享失败");
  7. }
  8. }
  9. void OPSDK::ShareOpenInstall()
  10. {
  11. Json::Value shareJson;
  12. shareJson["text"] = Json::Value("分享文本");
  13. shareJson["sharekey"] = Json::Value("abcdef");
  14. Json::FastWriter fast_writer;
  15. string tmp = fast_writer.write(shareJson);
  16. OPGameSDK::GetInstance().ChannelSpreads("ShareOpenInstall",(void*)openInstallShareCallback,tmp.c_str());
  17. }

泰国

1 工程配置 泰国

1.1 配置语言

  1. <key>CFBundleDevelopmentRegion</key>
  2. <string>THAI</string>

1.2 配置Facebook、Line

  1. <key>CFBundleURLTypes</key>
  2. <array>
  3. <dict>
  4. <key>CFBundleTypeRole</key>
  5. <string>Editor</string>
  6. <key>CFBundleURLName</key>
  7. <string>boundleId</string>
  8. <key>CFBundleURLSchemes</key>
  9. <array>
  10. <string>line3rdp.boundleId</string>
  11. </array>
  12. </dict>
  13. <dict>
  14. <key>CFBundleTypeRole</key>
  15. <string>Editor</string>
  16. <key>CFBundleURLName</key>
  17. <string></string>
  18. <key>CFBundleURLSchemes</key>
  19. <array>
  20. <string>fb1234567890</string>
  21. </array>
  22. </dict>
  23. </array>
  24. <key>FacebookAppID</key>
  25. <string>1234567890</string>
  26. <key>FacebookDisplayName</key>
  27. <string>Demo</string>
  28. <key>LSApplicationQueriesSchemes</key>
  29. <array>
  30. <string>lineauth</string>
  31. <string>line3rdp.boundleId</string>
  32. <string>fbauth2</string>
  33. </array>
  34. <key>NSAppTransportSecurity</key>
  35. <dict>
  36. <key>NSAllowsArbitraryLoads</key>
  37. <true/>
  38. <key>NSExceptionDomains</key>
  39. <dict>
  40. <key>access.line.me</key>
  41. <dict>
  42. <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
  43. <false/>
  44. </dict>
  45. <key>api.line.me</key>
  46. <dict>
  47. <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
  48. <false/>
  49. </dict>
  50. <key>dl.profile.line.naver.jp</key>
  51. <dict>
  52. <key>NSIncludesSubdomains</key>
  53. <true/>
  54. <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
  55. <false/>
  56. </dict>
  57. <key>lcs.naver.jp</key>
  58. <dict>
  59. <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
  60. <false/>
  61. </dict>
  62. <key>obs.line-apps.com</key>
  63. <dict>
  64. <key>NSIncludesSubdomains</key>
  65. <true/>
  66. <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
  67. <false/>
  68. </dict>
  69. <key>scdn.line-apps.com</key>
  70. <dict>
  71. <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
  72. <false/>
  73. </dict>
  74. </dict>
  75. </dict>

注意:FacebookAppID、FacebookDisplayName必须与facebook后台一致

2 Line接口 泰国

2.1 Line好友列表

2.1.1 好友列表回调

  1. void friendListCallBack(bool result,const char* jsonStr)
  2. {
  3. if (result) {
  4. NSString *dataStr = [NSString stringWithUTF8String:jsonStr];
  5. NSData *data = [dataStr dataUsingEncoding:NSUTF8StringEncoding];
  6. NSError *error = nil;
  7. NSDictionary* dic =[NSJSONSerialization
  8. JSONObjectWithData:data //1
  9. options:kNilOptions
  10. error:&error];
  11. if (error) {
  12. //获取好友列表失败!
  13. return;
  14. }
  15. NSArray *array = [dic objectForKey:@"data"];
  16. for (int i=0; i<[array count]; i++) {
  17. NSDictionary *tmpDic = [array objectAtIndex:i];
  18. NSString *nickname = [tmpDic objectForKey:@"displayName"];
  19. NSString *user_id = [tmpDic objectForKey:@"mid"];
  20. NSString *profile_image_url = [tmpDic objectForKey:@"pictureUrl"];
  21. NSLog(@"用户名:%@,用户id:%@,用户头像地址:%@",nickname,user_id,profile_image_url
  22. );
  23. } else {
  24. //获取好友列表失败!
  25. }
  26. }

2.1.2 获取好友接口

  1. void OPSDK::getFriendList()
  2. {
  3. //startIndex 第几页. (最小值为 1)
  4. //display 每页显示多少. (最小值为 1, 最大值为 500)
  5. //type:0:所有好友 1;app好友 2:非app好友
  6. OPGameSDK::GetInstance().GetFriendsList(friendListCallBack,1,50);
  7. }

2.2 Line分享

2.2.1 分享回调

  1. void fbShareCallback(int errorCode, const char* jsonStr)
  2. {
  3. OPUserType type = OPGameSDK::GetInstance().mShareType;
  4. if (type == kFacebook_Type) {
  5. cout<<"facebook分享"<<endl;
  6. }else if(type == kLine_SendMsg){
  7. cout<<"line 分享"<<endl;
  8. }else if(type == kLine_Timeline){
  9. cout<<"line timeline"<<endl;
  10. }
  11. if (errorCode == 1) {
  12. OPSDK::GetInstance().ShowMsg("分享成功");
  13. }else if (errorCode == 0){
  14. OPSDK::GetInstance().ShowMsg("取消分享");
  15. }else{
  16. OPSDK::GetInstance().ShowMsg("分享失败");
  17. }
  18. }

2.2.2 Line发送邀请

  1. void OPSDK::sendMsg(const char* receiverid)
  2. {
  3. //设置分享回调
  4. OPGameSDK::GetInstance().ShareCallBack(fbShareCallback);
  5. //Line分享
  6. Json::Value shareJson;
  7. shareJson["templateId"] = Json::Value("msg_line_game_template_7"); //模板ID
  8. shareJson["receiverId"] = Json::Value(receiverid); //好友ID
  9. shareJson["text"] = Json::Value("OPText");
  10. shareJson["subtext"] = Json::Value("OPSubtext");
  11. shareJson["alttext"] = Json::Value("OPAltText");
  12. shareJson["linktext"] = Json::Value("OPLinktext");//有长度限制,不能超过13个字符,注意该linktext非链接而是一个标题
  13. Json::FastWriter fast_writer;
  14. string shareStr = fast_writer.write(shareJson);
  15. OPGameSDK::GetInstance().ShareToThirdPlatform(shareStr.c_str(),kLine_SendMsg);
  16. }

2.2.3 Line发送Timeline

  1. void OPSDK::sendTimeline()
  2. {
  3. if (OPGameSDK::GetInstance().IsLogin() == false) {
  4. ShowMsg("未登录");
  5. return;
  6. }
  7. //设置分享回调
  8. OPGameSDK::GetInstance().ShareCallBack(fbShareCallback);
  9. //timeline
  10. Json::Value shareJson;
  11. shareJson["styleType"] = Json::Value("A1"); //必填
  12. shareJson["feedNo"] = Json::Value("1"); //必填
  13. shareJson["postText"] = Json::Value("大家一起来玩游戏"); //必填
  14. shareJson["titleText"] = Json::Value("titleText"); //必填
  15. shareJson["mainText"] = Json::Value("mainText"); //必填
  16. shareJson["subText"] = Json::Value("subText"); //必填
  17. shareJson["thumbnail_url"] = Json::Value("//content.gamebean.com/image/ourpalmcn/logo.jpg");//必填
  18. shareJson["thumbnail_width"] = Json::Value("100"); //必填
  19. shareJson["thumbnail_height"] = Json::Value("100"); //必填
  20. shareJson["dynamicobjs_object"] = Json::Value("1"); //可选
  21. Json::FastWriter fast_writer;
  22. string shareStr = fast_writer.write(shareJson);
  23. OPGameSDK::GetInstance().ShareToThirdPlatform(shareStr.c_str(),kLine_Timeline);
  24. }

2.3 Session验证接口

2.3.1 Session验证回调

  1. void sessionInvalidCallBack(bool result,const char* jsonStr)
  2. {
  3. if (result) {
  4. //session 失效
  5. cout<<"**********session 失效**********"<<endl;
  6. }else{
  7. //session 有效
  8. cout<<"**********session 有效**********"<<endl;
  9. }
  10. }

2.3.2 Session验证接口

  1. - (void)applicationWillEnterForeground:(UIApplication *)application
  2. {
  3. OPGameSDK::GetInstance().SessionInvalidCallBack(sessionInvalidCallBack);
  4. }

3 Facebook接口 泰国

3.1 Facebook分享

3.1.1 分享回调

  1. void fbShareCallback(int errorCode, const char* jsonStr)
  2. {
  3. OPUserType type = OPGameSDK::GetInstance().mShareType;
  4. if (type == kFacebook_Type) {
  5. cout<<"facebook分享"<<endl;
  6. }else if(type == kLine_SendMsg){
  7. cout<<"line 分享"<<endl;
  8. }else if(type == kLine_Timeline){
  9. cout<<"line timeline"<<endl;
  10. }
  11. if (errorCode == 1) {
  12. OPSDK::GetInstance().ShowMsg("分享成功");
  13. }else if (errorCode == 0){
  14. OPSDK::GetInstance().ShowMsg("取消分享");
  15. }else{
  16. OPSDK::GetInstance().ShowMsg("分享失败");
  17. }
  18. }

3.1.2 Facebook分享

  1. void OPSDK::share()
  2. {
  3. //设置分享回调
  4. OPGameSDK::GetInstance().ShareCallBack(fbShareCallback);
  5. Json::Value shareJson;
  6. shareJson["link"] = Json::Value("https://developers.facebook.com/docs/ios/share/");
  7. Json::FastWriter fast_writer;
  8. string shareStr = fast_writer.write(shareJson);
  9. OPGameSDK::GetInstance().ShareToThirdPlatform(shareStr.c_str(),kFacebook_Type);
  10. }

东南亚

1 工程配置 东南亚

1.1 配置语言

  1. <key>CFBundleDevelopmentRegion</key>
  2. <string>EN</string>

1.2 配置Facebook

  1. <key>CFBundleURLTypes</key>
  2. <array>
  3. <dict>
  4. <key>CFBundleTypeRole</key>
  5. <string>Editor</string>
  6. <key>CFBundleURLName</key>
  7. <string></string>
  8. <key>CFBundleURLSchemes</key>
  9. <array>
  10. <string>fb1234567890</string>
  11. </array>
  12. </dict>
  13. </array>
  14. <key>FacebookAppID</key>
  15. <string>1234567890</string>
  16. <key>FacebookDisplayName</key>
  17. <string>Demo</string>
  18. <key>LSApplicationQueriesSchemes</key>
  19. <array>
  20. <string>fbauth2</string>
  21. <string>fbapi</string>
  22. <string>fbshareextension</string>
  23. </array>

注意:FacebookAppID、FacebookDisplayName必须与facebook后台一致

2 App评价接口 东南亚

  1. OPGameSDK::GetInstance().ChannelSpreads("ShowAppReview",
  2. (void*)"itms-apps://itunes.apple.com/cn/app/id1207224964?mt=8&action=write-review");

3 Facebook接口 东南亚

3.1 FB分享接口

3.1.1 分享回调

  1. void fbShareCallback(int errorCode, const char* jsonStr)
  2. {
  3. OPUserType type = OPGameSDK::GetInstance().mShareType;
  4. if (type == kFBShare) {
  5. cout<<"facebook分享链接"<<endl;
  6. }else if(type == kFBShareImage){
  7. cout<<"facebook分享图片"<<endl;
  8. }else if(type == kFBInviteFriend){
  9. cout<<"facebook邀请"<<endl;
  10. }
  11. if (errorCode == 1) {
  12. OPSDK::GetInstance().ShowMsg("分享成功");
  13. }else if (errorCode == 0){
  14. OPSDK::GetInstance().ShowMsg("取消分享");
  15. }else{
  16. OPSDK::GetInstance().ShowMsg("分享失败");
  17. }
  18. }

3.1.2 邀请好友

在Info.plist文件中设置Facebook好友权限

  1. <key>Ourpalm_facebook_friends</key>
  2. <false/>

注意:默认设置为支持好友权限;true:需要邀请好友权限;false:无需邀请好友权限

  1. void OPSDK::inviteFriend()
  2. {
  3. OPGameSDK::GetInstance().ShareCallBack(fbShareCallback);
  4. //邀请好友
  5. Json::Value shareJson;
  6. shareJson["title"] = Json::Value("title");//标题
  7. shareJson["message"] = Json::Value("message");//消息
  8. Json::FastWriter fast_writer;
  9. string shareStr = fast_writer.write(shareJson);
  10. OPGameSDK::GetInstance().ShareToThirdPlatform(shareStr.c_str(),kFBInviteFriend);
  11. }

回调数据格式:

  1. {
  2. request = 1501199046846374;
  3. to = (
  4. 364167064041191 //FB好友的用户id
  5. );
  6. "to[0]" = 364167064041191; //FB好友的用户id
  7. }

3.1.3 分享链接

  1. void OPSDK::shareLink()
  2. {
  3. //设置分享回调
  4. OPGameSDK::GetInstance().ShareCallBack(fbShareCallback);
  5. Json::Value shareJson;
  6. shareJson["link"] = Json::Value("https://developers.facebook.com/docs/ios/share/");
  7. Json::FastWriter fast_writer;
  8. string shareStr = fast_writer.write(shareJson);
  9. OPGameSDK::GetInstance().ShareToThirdPlatform(shareStr.c_str(),kFBShare);
  10. }

3.1.4 分享图片

  1. void OPSDK::shareImage()
  2. {
  3. //设置分享回调
  4. OPGameSDK::GetInstance().ShareCallBack(fbShareCallback);
  5. //分享
  6. Json::Value shareJson;
  7. //网络图片
  8. //shareJson["picture"] = Json::Value("http://content.game-bean.com/image/98kof/pc/pc_banner01.jpg");
  9. //本地图片
  10. NSString *filePath = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"localPic.png"];
  11. shareJson["picture"] = Json::Value([filePath UTF8String]);
  12. Json::FastWriter fast_writer;
  13. string shareStr = fast_writer.write(shareJson);
  14. OPGameSDK::GetInstance().ShareToThirdPlatform(shareStr.c_str(),kFBShareImage);
  15. }

4 IronSource接口 东南亚

4.1 配置Info.plist文件

  1. <key>GADApplicationIdentifier</key>
  2. <string>ca-app-pub-7601182028383771~5697130414</string>
  3. <key>OPIronSourceAppkey</key>
  4. <string>cf297995</string>

4.2 展示广告接口

  1. void adResultCallBack(const char* adType,const char* statusType)
  2. {
  3. if (adType && statusType) {
  4. if (strcmp(adType, "IronSourceRewardedVideo") == 0 ) {
  5. //IronSource视频广告
  6. if (strcmp(statusType, "RewardedVideoOpen") == 0) {
  7. //广告开始展示
  8. }else if (strcmp(statusType, "RewardedVideoReceivePlacement") == 0){
  9. //广告结束播放
  10. }else if (strcmp(statusType, "RewardedVideoPlayFailed") == 0){
  11. //广告播放失败
  12. }else if (strcmp(statusType, "RewardedVideoClose") == 0){
  13. //用户关闭广告
  14. }else if (strcmp(statusType, "RewardedVideoClick") == 0){
  15. //用户点击广告
  16. }
  17. }
  18. }
  19. }
  20. void OPSDK::shareImage()
  21. {
  22. OPGameSDK::GetInstance().ChannelSpreads("ShowIronSourceRewardedVideo",(void*)adResultCallBack);
  23. }

5 OpenInstall接口 东南亚

5.1 配置Info.plist文件

  1. //com.openinstall.APP_KEY请与运营人员获取
  2. <key>com.openinstall.APP_KEY</key>
  3. <string>po32ce</string>
  1. <key>CFBundleURLTypes</key>
  2. <array>
  3. <dict>
  4. <key>CFBundleTypeRole</key>
  5. <string>Editor</string>
  6. <key>CFBundleURLName</key>
  7. <string>openinstall</string>
  8. <key>CFBundleURLSchemes</key>
  9. <array>
  10. <string>po32ce</string>
  11. </array>
  12. </dict>
  13. </array>

5.2 配置entitlements

  1. <key>com.apple.developer.associated-domains</key>
  2. <array>
  3. <string>applinks:po32ce.openinstall.io</string>
  4. </array>

5.3 设置openURL

  1. - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler{
  2. //处理通过openinstall一键唤起App时传递的数据
  3. OPGameSDK::GetInstance().ChannelSpreads("ApplicationContinueUserActivity",(void*)application,(void*)userActivity);
  4. return YES;
  5. }

5.4 OpenInstall动态参数回调

  1. void openInstallParamsCallback(const char* type, const char* jsonStr)
  2. {
  3. if (strcmp(type, "InstallParams") == 0) {
  4. //安装获取动态参数
  5. }else if (strcmp(type, "WakeUpParams") == 0) {
  6. //唤醒时获取动态参数
  7. }
  8. }
  9. //设置openinstall回调接口
  10. OPGameSDK::GetInstance().ChannelSpreads("GetOpenInstallParams",(void*)openInstallParamsCallback);

5.5 OpenInstall分享

  1. void openInstallShareCallback(bool result, const char* jsonStr)
  2. {
  3. if (result) {
  4. OPSDK::GetInstance().ShowMsg("分享成功");
  5. }else{
  6. OPSDK::GetInstance().ShowMsg("分享失败");
  7. }
  8. }
  9. void OPSDK::ShareOpenInstall()
  10. {
  11. Json::Value shareJson;
  12. shareJson["text"] = Json::Value("分享文本");
  13. shareJson["sharekey"] = Json::Value("abcdef");
  14. Json::FastWriter fast_writer;
  15. string tmp = fast_writer.write(shareJson);
  16. OPGameSDK::GetInstance().ChannelSpreads("ShareOpenInstall",(void*)openInstallShareCallback,tmp.c_str());
  17. }

欧美-网禅

1 工程配置 欧美-网禅

1.1 配置语言

  1. <key>CFBundleDevelopmentRegion</key>
  2. <string>CHT</string>

1.2 配置Mocaa参数

  1. <key>client_id</key>
  2. <string>ebb2effb-775b-4ea9-a958-9bbd7b2cff3f</string>
  3. <key>client_secret</key>
  4. <string>a44927cf-c49d-4e4c-a6c6-44d21bd30b94</string>
  5. <key>service_code</key>
  6. <string>SVC038</string>
  7. <key>mocaa_region</key>
  8. <string>GLOBAL</string>
  9. <key>FacebookAppID</key>
  10. <string>239325303651180</string>
  11. <key>FacebookDisplayName</key>
  12. <string>Global-MU-Origin-2</string>
  13. <key>NewRelicAppToken</key>
  14. <string>AAd6dc516f33bdbeb032a8afbc6e56bb2923893550</string>

注意:FacebookAppID、FacebookDisplayName必须与facebook后台一致

1.3 配置Schemes

  1. <key>LSApplicationQueriesSchemes</key>
  2. <array>
  3. <string>naversearchapp</string>
  4. <string>naversearchthirdlogin</string>
  5. <string>fbapi</string>
  6. <string>fbauth2</string>
  7. <string>fb-messenger-api</string>
  8. <string>fbshareextension</string>
  9. <string>twitter</string>
  10. <string>twitterauth</string>
  11. <string>lineauth</string>
  12. <string>line3rdp.com.webzen.mocaa.nativesample</string>
  13. </array>

1.4 配置NSAppTransportSecurity

  1. <key>NSAppTransportSecurity</key>
  2. <dict>
  3. <key>NSAllowsArbitraryLoads</key>
  4. <true/>
  5. <key>NSExceptionDomains</key>
  6. <dict>
  7. <key>vk.com</key>
  8. <dict>
  9. <key>NSExceptionAllowsInsecureHTTPLoads</key>
  10. <true/>
  11. <key>NSExceptionRequiresForwardSecrecy</key>
  12. <false/>
  13. <key>NSIncludesSubdomains</key>
  14. <true/>
  15. </dict>
  16. </dict>
  17. </dict>

2 网禅SDK接口 欧美-网禅

2.1 公告

  1. OPGameSDK::GetInstance().ChannelSpreads("ShowNotice");

2.2 Banner

  1. OPGameSDK::GetInstance().ChannelSpreads("ShowBanner");

2.3 Webview

  1. OPGameSDK::GetInstance().ChannelSpreads("ShowWebview",(void*)"http://bbs.0708.com");

2.4 协议

2.4.1 PrivacyPolicy

  1. OPGameSDK::GetInstance().ChannelSpreads("ShowPrivacyPolicy");

2.4.2 ServicePolicy

  1. OPGameSDK::GetInstance().ChannelSpreads("ShowServicePolicy");

2.5 游客转正式账号

  1. void changePartnerCallBack(int errCode,const char* jsonStr)
  2. {
  3. if (errCode == 1) {
  4. //已经成功转换成正式账号,请用正式账号重新登陆游戏
  5. }else if (errCode == 2){
  6. //该帐号已有其他角色, 请用其他帐号进行转换。
  7. }
  8. }
  9. OPGameSDK::GetInstance().ChannelSpreads("ShowChangePartner",(void*)changePartnerCallBack);

2.6 计费初始化接口

  1. NSArray *propIds = [NSArray arrayWithObjects:@"gmo2_150diamonds",@"gmo2_1250diamonds", nil];
  2. OPGameSDK::GetInstance().InitBillingStore((void *)propIds);

2.7 注册推送接口

  1. NSMutableDictionary *pushDic = [[[NSMutableDictionary alloc] init] autorelease];
  2. [pushDic setValue:[NSNumber numberWithBool:true] forKey:@"pushAllow"];
  3. [pushDic setValue:[NSNumber numberWithBool:false] forKey:@"gamepushAllow"];
  4. [pushDic setValue:[NSNumber numberWithBool:false] forKey:@"nightpushAllow"];
  5. [pushDic setValue:[NSNumber numberWithBool:false] forKey:@"custompushAllow"];
  6. OPGameSDK::GetInstance().RegistPushNotification((void*)pushDic);

2.8 删除账号接口

  1. void disconnectCallBack(bool result,const char* jsonStr)
  2. {
  3. }
  4. OPGameSDK::GetInstance().ChannelSpreads("Disconnect",(void*)disconnectCallBack);

日本-昆仑

1 工程配置 日本-昆仑

1.1 配置语言

  1. <key>CFBundleDevelopmentRegion</key>
  2. <string>JAPAN</string>

1.2 配置参数

  1. <key>Kalends_AppID</key>
  2. <string>4250</string>
  3. <key>FacebookAppID</key>
  4. <string>2294515914208845</string>
  5. <key>FacebookDisplayName</key>
  6. <string>Global-MU-Origin-2</string>

注意:FacebookAppID、FacebookDisplayName必须与facebook后台一致

1.3 配置QueriesSchemes

  1. <key>LSApplicationQueriesSchemes</key>
  2. <array>
  3. <string>fbapi</string>
  4. <string>fbapi20130214</string>
  5. <string>fbapi20130410</string>
  6. <string>fbapi20130702</string>
  7. <string>fbapi20131010</string>
  8. <string>fbapi20131219</string>
  9. <string>fbapi20140410</string>
  10. <string>fbapi20140116</string>
  11. <string>fbapi20150313</string>
  12. <string>fbapi20150629</string>
  13. <string>fbapi20160328</string>
  14. <string>fbauth</string>
  15. <string>fbauth2</string>
  16. <string>fb-messenger-api20140430</string>
  17. </array>

1.4 配置URLSchemes

  1. <key>CFBundleURLTypes</key>
  2. <array>
  3. <dict>
  4. <key>CFBundleTypeRole</key>
  5. <string>Editor</string>
  6. <key>CFBundleURLName</key>
  7. <string></string>
  8. <key>CFBundleURLSchemes</key>
  9. <array>
  10. <string>fb2294515914208845</string>
  11. </array>
  12. </dict>
  13. </array>

2 昆仑SDK接口 日本-昆仑

2.1 绑定Facebook账号

  1. void bindAccountCallBack(int code,const char* jsonStr)
  2. {
  3. if(code == 1){
  4. OPSDK::GetInstance().ShowMsg("绑定成功");
  5. }else if(code == 2){
  6. OPSDK::GetInstance().ShowMsg("账号已继承请重新登录");
  7. }else{
  8. OPSDK::GetInstance().ShowMsg("绑定失败");
  9. }
  10. }
  11. OPGameSDK::GetInstance().ChannelSpreads("BindAccount",(void*)bindAccountCallBack);

2.2 解绑Facebook账号

  1. void unbindAccountCallBack(bool result,const char* jsonStr)
  2. {
  3. if(result){
  4. OPSDK::GetInstance().ShowMsg("解绑成功");
  5. }else{
  6. OPSDK::GetInstance().ShowMsg("解绑失败");
  7. }
  8. }
  9. OPGameSDK::GetInstance().ChannelSpreads("UnbindAccount",(void*)unbindAccountCallBack);

2.3 昆仑客服

  1. OPGameSDK::GetInstance().ChannelSpreads("ShowWebview",(void*)"https://csm.web.koramgame.co.jp/?act=index.ask&pios=4250&pandroid=4250");

俄罗斯

1 工程配置 俄罗斯

1.1 配置语言

  1. <key>CFBundleDevelopmentRegion</key>
  2. <string>RU</string>

1.2 配置Facebook

  1. <key>CFBundleURLTypes</key>
  2. <array>
  3. <dict>
  4. <key>CFBundleTypeRole</key>
  5. <string>Editor</string>
  6. <key>CFBundleURLName</key>
  7. <string></string>
  8. <key>CFBundleURLSchemes</key>
  9. <array>
  10. <string>fb2460230330662969</string>
  11. </array>
  12. </dict>
  13. <dict>
  14. <key>CFBundleTypeRole</key>
  15. <string>Editor</string>
  16. <key>CFBundleURLName</key>
  17. <string>vk6984431</string>
  18. <key>CFBundleURLSchemes</key>
  19. <array>
  20. <string>vk6984431</string>
  21. </array>
  22. </dict>
  23. </array>
  24. <key>FacebookAppID</key>
  25. <string>2460230330662969</string>
  26. <key>FacebookDisplayName</key>
  27. <string>MU ORIGIN 2 - RU - iOS</string>
  28. <key>LSApplicationQueriesSchemes</key>
  29. <array>
  30. <string>fbauth2</string>
  31. <string>fbapi</string>
  32. <string>fbshareextension</string>
  33. <string>vk</string>
  34. <string>vk-share</string>
  35. <string>vkauthorize</string>
  36. </array>

注意:FacebookAppID、FacebookDisplayName必须与facebook后台一致

2 App评价接口 俄罗斯

  1. OPGameSDK::GetInstance().ChannelSpreads("ShowAppReview",
  2. (void*)"itms-apps://itunes.apple.com/cn/app/id1207224964?mt=8&action=write-review");

3 Facebook接口 俄罗斯

3.1 FB分享接口

3.1.1 分享回调

  1. void fbShareCallback(int errorCode, const char* jsonStr)
  2. {
  3. OPUserType type = OPGameSDK::GetInstance().mShareType;
  4. if (type == kFBShare) {
  5. cout<<"facebook分享链接"<<endl;
  6. }else if(type == kFBShareImage){
  7. cout<<"facebook分享图片"<<endl;
  8. }else if(type == kFBInviteFriend){
  9. cout<<"facebook邀请"<<endl;
  10. }
  11. if (errorCode == 1) {
  12. OPSDK::GetInstance().ShowMsg("分享成功");
  13. }else if (errorCode == 0){
  14. OPSDK::GetInstance().ShowMsg("取消分享");
  15. }else{
  16. OPSDK::GetInstance().ShowMsg("分享失败");
  17. }
  18. }

3.1.2 邀请好友

在Info.plist文件中设置Facebook好友权限

  1. <key>Ourpalm_facebook_friends</key>
  2. <false/>

注意:默认设置为支持好友权限;true:需要邀请好友权限;false:无需邀请好友权限

  1. void OPSDK::inviteFriend()
  2. {
  3. OPGameSDK::GetInstance().ShareCallBack(fbShareCallback);
  4. //邀请好友
  5. Json::Value shareJson;
  6. shareJson["title"] = Json::Value("title");//标题
  7. shareJson["message"] = Json::Value("message");//消息
  8. Json::FastWriter fast_writer;
  9. string shareStr = fast_writer.write(shareJson);
  10. OPGameSDK::GetInstance().ShareToThirdPlatform(shareStr.c_str(),kFBInviteFriend);
  11. }

回调数据格式:

  1. {
  2. request = 1501199046846374;
  3. to = (
  4. 364167064041191 //FB好友的用户id
  5. );
  6. "to[0]" = 364167064041191; //FB好友的用户id
  7. }

3.1.3 分享链接

  1. void OPSDK::shareLink()
  2. {
  3. //设置分享回调
  4. OPGameSDK::GetInstance().ShareCallBack(fbShareCallback);
  5. Json::Value shareJson;
  6. shareJson["link"] = Json::Value("https://developers.facebook.com/docs/ios/share/");
  7. Json::FastWriter fast_writer;
  8. string shareStr = fast_writer.write(shareJson);
  9. OPGameSDK::GetInstance().ShareToThirdPlatform(shareStr.c_str(),kFBShare);
  10. }

3.1.4 分享图片

  1. void OPSDK::shareImage()
  2. {
  3. //设置分享回调
  4. OPGameSDK::GetInstance().ShareCallBack(fbShareCallback);
  5. //分享
  6. Json::Value shareJson;
  7. //网络图片
  8. //shareJson["picture"] = Json::Value("http://content.game-bean.com/image/98kof/pc/pc_banner01.jpg");
  9. //本地图片
  10. NSString *filePath = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"localPic.png"];
  11. shareJson["picture"] = Json::Value([filePath UTF8String]);
  12. Json::FastWriter fast_writer;
  13. string shareStr = fast_writer.write(shareJson);
  14. OPGameSDK::GetInstance().ShareToThirdPlatform(shareStr.c_str(),kFBShareImage);
  15. }