最近在用swift重构公司的项目,首先踩的就是第三方SDK的坑,因为友盟没有swift集成的相关文档,所以只能摸着石头过河了,再次纪念一下自己踩的坑,同时也希望能给需要的人带来帮助
一言不合上代码,首先是友盟app统计
1 | OC |
这个是从友盟论坛上面挖出来的,一个小哥骚扰了人工2个多小时得出来的成果,本人连接了半个多小时人工受理也没有连上真是 **了🐶(自行打码)
下面是坑点有点多的友盟推送(好吧,承认我是菜才踩得坑。。。)
这里是appDelegate中的代理方法
1 | OC |
我只想说@available(iOS 10.0, *)
很重要!@available(iOS 10.0, *)
很重要!@available(iOS 10.0, *)
很重要!很重要!重要!要!不然除非能一字不差把方法名写出来,等着IDE提示补全@available(iOS 10.0, *)
这个是推送注册的方法,可以自行封装,@available(iOS 10.0, *)
的使用依然很重要
1 | Swift |
咳咳咳,不知道大家注意到这句没有
1 | let type:UNAuthorizationOptions = [.badge, .alert, .sound] |
OC中对应的是
1 | UNAuthorizationOptions types=UNAuthorizationOptionBadge|UNAuthorizationOptionAlert|UNAuthorizationOptionSound; |
这个是逻辑或的写法,有的小伙伴没有很仔细看swift的基础语法,就容易到这里卡主(比如我),还有就是swift3.0更新不少,目的一个字!简洁!
UNAuthorizationOptionBadge变成了.badge其他的大家自行脑补吧!
下面是分享
1 | let umengShareSevice = UMSocialManager.default() |
友盟的分享还是给出了swift版本的demo
1 | UMSocialUIManager.setPreDefinePlatforms([NSNumber(value:UMSocialPlatformType.wechatSession.rawValue),NSNumber(value:UMSocialPlatformType.wechatTimeLine.rawValue),NSNumber(value:UMSocialPlatformType.QQ.rawValue),NSNumber(value:UMSocialPlatformType.sina.rawValue)]) |
上面是我在自定义平台时候的一个问题,setPreDefinePlatforms方法的参数是一个数组,虽然提示是[Any]!类型但是里面还是要元素为NSNumber类型的数组