Objective-c 不调用微信api 直接调用系统微信分享

最近有个需求直接调用系统的微信分享,网上搜了好多都是系统有的Facebook和新浪微博的,没有看到微信,如果取到了微信的ServiceType不是就可以像分享到新浪微博一样调用系统分享了吗

/*直接调用系统微信分享的ServiceType*/
NSString *const SystemSocialType_WeiXin=@"com.tencent.xin.sharetimeline";

/*调用系统微信分享*/
+(BOOL)showSystemSocialWeiXinShare:(NSString *)title webUrl:(NSString *)weburl viewController:(UIViewController*)viewController
{
    if([SLComposeViewController isAvailableForServiceType:SystemSocialType_WeiXin])
    {//系统分享里有微信才行哦
        if((title==nil||[title isEqualToString:@""])&&(weburl==nil||[weburl isEqualToString:@""]))
        {//title 和 weburl 都为空
            return NO;
        }
        SLComposeViewController *svc = [SLComposeViewController composeViewControllerForServiceType:SystemSocialType_WeiXin];
        
        
        SLComposeViewControllerCompletionHandler myblock = ^(SLComposeViewControllerResult result){
            if(result == SLComposeViewControllerResultCancelled){
                NSLog(@"cancel");
            }else{
                NSLog(@"done");
            }
            [svc dismissViewControllerAnimated:YES completion:nil];
        };
        svc.completionHandler = myblock;
        if(title)
        {
            [svc setInitialText:title];
        }
        if(weburl)
        {
            [svc addURL:[NSURL URLWithString:weburl]];
        }
        
        [viewController presentViewController:svc animated:YES completion:nil];
        return YES;
    }
    return NO;
}

如何找到微信系统分享的ServiceType了,如下

/*
打开系统分享面板 
NSLog(@"activityType --------%@",activityType); 即可看到需要的activityType
*/
+(BOOL)showSystemShare:(NSString *)title imageUrl:(NSString *)imageUrl webUrl:(NSString *)webUrl viewController:(UIViewController*)viewController ipadPopView:(UIView *)ipadPopView
{
    NSMutableArray *activityItems=[[NSMutableArray alloc] init];
    if(imageUrl&&![imageUrl isEqualToString:@""])
    {
        NSURL *thumbUrl=[NSURL URLWithString:[[NSString stringWithFormat:@"%@",imageUrl] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] ];
        UIImage *image=[UIImage imageWithData:[NSData dataWithContentsOfURL:thumbUrl]];
        [activityItems addObject:image];
    }
    if(webUrl)
    {
        [activityItems addObject:[NSURL URLWithString:webUrl]];
    }
    
    if(title)
    {
        [activityItems addObject:title];
    }
    
    if(activityItems.count<=0)
    {
        return NO;
    }
    UIActivityViewController *activity=[[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
    activity.completionWithItemsHandler= ^(NSString *activityType, BOOL completed, NSArray *returnedItems, NSError *activityError) {
        NSLog(@"activityType --------%@",activityType);
        //activityType --------com.tencent.xin.sharetimeline
    };
    activity.title=@"系统分享";
    if([activity respondsToSelector:@selector(popoverPresentationController)])
    {
        activity.popoverPresentationController.sourceView=ipadPopView;
        activity.popoverPresentationController.permittedArrowDirections=UIPopoverArrowDirectionDown;
        [viewController presentViewController:activity animated:YES completion:nil];
    }else
    {
        [viewController presentViewController:activity animated:YES completion:nil];
    }
    return YES;
}```
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,953评论 25 709
  • 社交红利阅读笔记 书名:社交红利(修订升级版) 作者:徐志斌 出版社:中信出版社 正文前笔记: 推荐序1摘要 社交...
    凫水阅读 12,964评论 4 26
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,380评论 4 61
  • “落在一个人一生中的雪,我们不能全部看见,每个人都在自己的生命中,孤独地过冬。” 昨天在微信群里聊天,裸辞第四十三...
    余心笙阅读 3,496评论 3 2
  • 我是一名暴食催吐患者,暴食12年,我的人生从16岁开始改变,我的一生就被暴食给毁了,以前不知道自己的行为是暴食症,...
    jdjjbfjn阅读 3,647评论 0 0

友情链接更多精彩内容