iOS开发 微信SDK的分享功能
2016-06-25 09:38
856 查看
1.首先下载微信SDK:微信SDK下载地址(更多关于微信SDK信息文档请访问官方网站:微信开放平台)2.导入微信SDK将下载下来的SDKExport文件夹导入到工程,其中包含3个核心文件libWeChatSDK.a WXApi.h WXApiObject.h(强烈建议大家看看read-me文件)
3.在工程Build Phases -> Link Binary With Libraries 链接以下动态库和框架文件SystemConfiguration.frameworklibz.dyliblibsqlite3.0.dylibCoreTelephony.framework
4.使用SDK注册你的APP建议在
通过该类得知,只能发送文本信息和多媒体信息两者选一,多媒体信息可分为链接类,视频类,音乐类,在此我以链接类为例,实例化此发送对象实例化发送对象
解决办法:添加libc++.tbd
如果无法跳转至微信
根据提示信息显示可能有两种情况1 iOS跳转到其他APP使用的是URL Scheme,在iOS9新特性中加入了URL Scheme白名单功能,需要把要跳转的APP的URL Scheme加入到当前工程的跳转白名单中,具体操作请看URL Scheme 白名单2 当前机器中没有安装微信可以使用
7.如果没有其他问题点击分享按钮后就会提示打开微信并进行分享操作 如图
当分享完成后会回到APP 调用最开始注册的"wx1234567890"为URL Scheme,因此也应该把此key添加到当前工程的URL Scheme(否则无法跳转回到原APP)
8.分享完成后的回调操作实现代理
从微信端打开第三方APP会调用此方法,此方法再调用代理的onResp方法
9.最后可以根据返回的errCode值来做相应的处理
微信是对图片的大小是有限制的如果超过了限制分享不了所以解决方法如下:#pragma mark图片压缩- (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize{ UIGraphicsBeginImageContext(newSize); [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)]; UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return newImage;}文/老坛泡菜(简书作者)原文链接:http://www.jianshu.com/p/7a2f49c654df著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
AppDelegate此方法中注册,导入
import "WXApi.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [WXApi registerApp:@"wx1234567890"];//此为申请下来的key一般以wx开头 return YES; }5.创建发送体并向微信发送分享信息首先我们来看看发送对象的类
static NSString *kLinkURL = @"http://tech.qq.com/zt2012/tmtdecode/252.htm"; static NSString *kLinkTagName = @"WECHAT_TAG_JUMP_SHOWRANK"; static NSString *kLinkTitle = @"专访张小龙:产品之上的世界观"; static NSString *kLinkDescription = @"微信的平台化发展方向是否真的会让这个原本简洁的产品变得臃肿?在国际化发展方向上,微信面临的问题真的是文化差异壁垒吗?腾讯高级副总裁、微信产品负责人张小龙给出了自己的回复。";
- (IBAction)shareBtn:(UIButton *)sender { //创建发送对象实例 SendMessageToWXReq *sendReq = [[SendMessageToWXReq alloc] init]; sendReq.bText = NO;//不使用文本信息 sendReq.scene = 1;//0 = 好友列表 1 = 朋友圈 2 = 收藏 //创建分享内容对象 WXMediaMessage *urlMessage = [WXMediaMessage message]; urlMessage.title = kLinkTitle;//分享标题 urlMessage.description = kLinkDescription;//分享描述 [urlMessage setThumbImage:[UIImage imageNamed:@"testImg"]];//分享图片,使用SDK的setThumbImage方法可压缩图片大小 //创建多媒体对象 WXWebpageObject *webObj = [WXWebpageObject object]; webObj.webpageUrl = kLinkURL;//分享链接 //完成发送对象实例 urlMessage.mediaObject = webObj; sendReq.message = urlMessage; //发送分享信息 [WXApi sendReq:sendReq]; }6.接下来就可以测试一下是否和微信接通了 以下是几个常见的问题如果编译不通过显示以下错误信息
WXApi.h中的
isWxAppInstalled方法来判断当前机器是否安装了微信,从而做出相应操作
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{return [WXApi handleOpenURL:url delegate:self];}
- (void)onResp:(BaseResp *)resp {//把返回的类型转换成与发送时相对于的返回类型,这里为SendMessageToWXRespSendMessageToWXResp *sendResp = (SendMessageToWXResp *)resp;//使用UIAlertView 显示回调信息NSString *str = [NSString stringWithFormat:@"%d",sendResp.errCode];UIAlertView *alertview = [[UIAlertView alloc] initWithTitle:@"回调信息" message:str delegate:self cancelButtonTitle:@"确认" otherButtonTitles:nil, nil];[alertview show];}到这里我们就可以看到微信回调的信息了
相关文章推荐
- 社交巨头三国杀:微信、WhatsApp、Line到底有啥区别?
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 微信悄悄升级群聊功能:个人微信营销号的福音
- 突击部队拼多多
- 我是运营,我没有假期
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- 如何做到日消息量100万的微信公众号?
- 论微信取消推送功能的可能性(原创)
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- Android ADT 23.0.0无法更新到23.0.2问题解决方案
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- 微信的成功,靠的是QQ导流吗?
- 「Linux 中国」2018 微信文章排行榜
- [转][源代码]Comex公布JailbreakMe 3.0源代码