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”]];//分享图片,使用SDKsetThumbImage方法可压缩图片大小

    //创建多媒体对象

    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;

            }

        }

}

然后再进行相应的处理即可。


你可能感兴趣的:(IOS下微信好友和朋友圈分享实现)