iOS实现友盟微信分享

第一步:安装友盟sdk

在pod中添加: pod 'UMengSocialCOM', '~> 5.2.1’

然后执行:pod install


第二步:安装库文件


在xcode->build phase->link binary with libraries中点击➕

添加:

Security.framework

libiconv.dylib

SystemConfiguration.framework

CoreGraphics.Framework

libsqlite3.dylib

CoreTelephony.framework

libstdc++.dylib

libz.dylib

SystemConfiguration.framework

添加这几个库文件


第三步:申请appkey:

这个一般是后台或者boss给的,但是有时候就你一个ios程序员没办法自己去申请吧,很简单,申请就用.


第四步:申请appID

这个同上,如果没办法还是自己去申请吧,如果公司的开发者账号的邮箱密码你不知道,你就只能用你自己的邮箱去申请了,以微信为例子,登陆:https://open.weixin.qq.com/ 登陆后拉到最下面,移动端开发,然后点进去->创建应用程序->填写相关东西->提示说需要7天以内,但是实际上只需要6个小时左右,当然运气不好申请个几天也是有可能的.


申请下来之后设置URL scheme,这个东西在xcode-> Info->URL Types,一样点击➕,点击进去之后,那个URL scheme位置写的就是你申请下来的appID,那个bundleID写你要分享应用的拼音吧,其实这个ID挺随意,图片可有可无了,自己领会.


第五步:

在Appdelegate.m里面添加头文件:#import "UMSocial.h"和#import “UMSocialWechatHandler.h"


然后在Appdelegate.m文件里面写上

(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

[UMSocialData setAppKey:@"你第三步申请的appkey"];

   

     [UMSocialWechatHandler setWXAppId:@"你第四步申请的appID" appSecret:@"你第三部申请的appKey" url:你的url];


第六步:


在你需要分享的Controller上,添加这个代码,头文件也是加上前面两个.


    [UMSocialData defaultData].extConfig.title = self.currentTitle;//这个位置写的你要分享的标题

    [UMSocialData defaultData].extConfig.qqData.url = self.currentURL;//分享的URL

    [UMSocialSnsService presentSnsIconSheetView:self

                                         appKey:@"第三步申请的appKey"

                                      shareText:图文分享中的文章

                                     shareImage:[UIImage imageNamed:@"图文分享中的图片"]

                                shareToSnsNames:@[UMShareToWechatSession,UMShareToWechatTimeline]

                                       delegate:self];

    [UMSocialData defaultData].extConfig.wechatSessionData.url =  self.currentURL;//当分享消息类型为图文时,点击分享内容会跳转到预设的链接,设置方法如下


    [UMSocialData defaultData].extConfig.wechatTimelineData.url = self.currentURL;

//如果是朋友圈,则替换平台参数名即可






出现的错误:

如果你用模拟器运行很可能出现这个错误:

Undefined symbols for architecture i386:

  "_OBJC_CLASS_$_QQApiAudioObject", referenced from:

      objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o)

  "_OBJC_CLASS_$_QQApiImageObject", referenced from:

      objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o)

  "_OBJC_CLASS_$_QQApiInterface", referenced from:

      objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o)

  "_OBJC_CLASS_$_QQApiNewsObject", referenced from:

      objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o)

  "_OBJC_CLASS_$_QQApiTextObject", referenced from:

      objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o)

  "_OBJC_CLASS_$_QQApiVideoObject", referenced from:

      objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o)

  "_OBJC_CLASS_$_SendMessageToQQReq", referenced from:

      objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o)

  "_OBJC_CLASS_$_TencentOAuth", referenced from:

      objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o)

ld: symbol(s) not found for architecture i386

clang: error: linker command failed with exit code 1 (use -v to see invocation)



如果你出现这个错误,不用担心,因为这个错误你在真机测试上是不会出现的,只是在模拟器上会出现,虽然只是在模拟器上会出现,但是也还是需要解决问题是吧,之前我以为添加文件或者库漏掉的问题,后来百度了半个多小时发现不是,只需要简单的修改:

进入xcode->build setting->Architectures->Build Active Architecture Only->改为yes 就ok了





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值