IOS下微信好友和朋友圈分享实现
1、IOS分享到微信好友和微信朋友圈
*步,先检测微信客户端是否存在:
[WXApi isWXAppInstalled]; — 这个方法返回一个bool值,来验证微信客户端是否存在
第二步,跳转到微信界面(好友或者朋友圈):
//创建发送对象实例
SendMessageToWXReq *sendReq = [[SendMessageToWXReq alloc] init];
sendReq.bText = NO;//不使用文本信息
//sendReq.scene = 1;//0 = 好友列表 1 = 朋友圈 2 = 收藏
//创建分享内容对象
WXMediaMessage *urlMessage = [WXMediaMessage message];
urlMessage.title = [NSString stringWithUTF8String:“title”];//分享标题
urlMessage.description = [NSString stringWithFormat:@”%s”, “分享描述”];//分享描述
[urlMessage setThumbImage:[UIImage imageNamed:[NSString stringWithUTF8String:“1.png”]];//分享图片,使用SDK的setThumbImage方法可压缩图片大小
//创建多媒体对象
WXWebpageObject *webObj = [WXWebpageObject object];
webObj.webpageUrl = [NSString stringWithFormat:@”%s”, “www.baidu.coom”];//分享链接
//完成发送对象实例
urlMessage.mediaObject = webObj;
sendReq.message = urlMessage;
//发送分享信息
[WXApi sendReq:sendReq];
第三步:验证分享回调:
在AppController.mm文件中,实现如下方法:
– (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options NS_AVAILABLE_IOS(9_0) // no equiv. notification. return NO if the application can’t open for some reason
{
if([url.host isEqualToString:@”platformId=wechat”])
{
return [WXApi handleOpenURL:url delegate:self];
}
else
{
return true;
}
}
//上面这个方法针对IOS9以上,但是对于IOS8的系统来说, 要实现下边的方法:
– (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
if(url.host isEqualToString:@”platformId=wechat”])
{
return [WXApi handleOpenURL:url delegate:self];
}
else
{
return true;
}
}
实际上这两个方法只是方法名不一致,内容都是一样的。
然后实现微信分享的回调方法:
-(void)onResp:(BaseResp *)resp
{
if([resp isKindOfClass:[SendMessageToWXResp class]]) {
SendMessageToWXResp *sendResp = (SendMessageToWXResp *)resp;
switch (sendResp.errCode) {
case WXSuccess://分享成功
{
printf(“微信朋友圈分享成功\n”);
break;
}
case WXErrCodeUserCancel://分享取消
{
printf(“微信朋友圈分享取消\n”);
break;
}
case WXErrCodeSentFail://分享失败
{
printf(“微信朋友圈分享失败\n”);
break;
}
default://分享失败
{
break;
}
}
}
然后再进行相应的处理即可。