iOS UMeng OC和Swift混编

打印 上一主题 下一主题

主题 921|帖子 921|积分 2763

设置Objective-C桥接文件


导入SDK头文件

在UMengDemo-Bridging-Header.h中加入U-Share SDK头文件:
//导入UMCommon的OC的头文件
#import <UMCommon/UMCommon.h>
//导入UShare的OC的头文件
#import <UMSocialCore/UMSocialCore.h>
#import <UShareUI/UShareUI.h>
//导入UMAnalytics的OC的头文件
#import <UMAnalytics/DplusMobClick.h>
#import <UMAnalytics/MobClick.h>
#import <UMAnalytics/MobClickGameAnalytics.h>
//导入UMPush的OC的头文件
#import <UMPush/UMessage.h>
UMengDemo的OC和Swift的切换

UMengDemo是用OC的代码编写的,同时也兼容了swift3.0的调用示例(UMengDemo不再对swift2.0做示例兼容).
swift文件夹的结构


文件名功能分析如下:
   

  • UMSocialSDK-Bridging-Header.h 为swift3.0的桥接文件,主要是在swift3.0中,调用oc的代码。
   

  • UMShareSwiftInterface.swift 为社会化分享Swift3.0的接口文件,主要是为了展示用户让oc调用swift3.0的代码的示例(用户可以在swift3.0的工程中直接调用对应的swift接口)。 备注:UMSocialSwiftInterface.swift这个文件是单独分享工程Demo用的swift文件,现在只是换了一个类名而已,请用户知晓。
   

  • UMAnalyticsSwiftInterface.swift 为统计SDK的Swift3.0的接口文件和OC的API一一对应。
   

  • UMGameAnalyticsSwiftInterface.swift 为游戏统计SDK的Swift3.0的接口文件和OC的API一一对应。
   

  • UMDplusMobClickSwiftInterface.swift 为Dplus的统计SDK的Swift3.0的接口文件和OC的API一一对应。
   

  • UMessageSwiftInterface.swift 为PushSdk的Swift3.0的接口文件和OC的API一一对应。
   

  • UMCommonSwiftInterface.swift 为Common组件的Swift3.0的接口文件和OC的API一一对应。
  设置切换swift的宏


引入对应的swift的头文件,并在OC中调用swift3.0的代码如下

代码如下
#ifdef UM_Swift
#import “UMengDemo-Swift.h”
#endif
//分享文本


  • (void)shareTextToPlatformTypeUMSocialPlatformType)platformType
{
//创建分享消息对象
UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];
//设置文本
messageObject.text = UMS_Text;
#ifdef UM_Swift
[UMSocialSwiftInterface shareWithPlattype:platformType messageObject:messageObject viewController:self completion:^(UMSocialShareResponse * data, NSError * error) {
#else
//调用分享接口
[[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:messageObject currentViewController:self completion:^(id data, NSError *error) {
#endif
if (error) {
UMSocialLogInfo(@“***Share fail with error %@”,error);
}else{
if ([data isKindOfClass:[UMSocialShareResponse class]]) {
UMSocialShareResponse *resp = data;
//分享结果消息
UMSocialLogInfo(@“response message is %@”,resp.message);
//第三方原始返回的数据
UMSocialLogInfo(@“response originalResponse data is %@”,resp.originalResponse);
resp = data;
//分享结果消息
UMSocialLogInfo(@“response message is %@”,resp.message);
//第三方原始返回的数据
UMSocialLogInfo(@“response originalResponse data is %@”,resp.originalResponse);

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

种地

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表