您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页iOS原生分享

iOS原生分享

来源:二三娱乐

前言

分享是APP开发必不可少的一个功能。APP分享是产品推广,增加用户量的一个重要渠道,所以分享功能的开发已经是非常成熟了,网上也有很多第三方的分享库,比如,友盟,Mob等。而我今天主要是要讲苹果系统自带的原生分享的实现。

参考文章

1.优劣对比

第三方分享与原生分享,各有优缺点,并没有优劣之分,主要是看APP的需求与你个人的喜好。

①原生分享

  • 优点
    使用简单、不用注册繁杂的分享平台账号、不用导入臃肿的SDK包
  • 缺点
    UI可定制性差,只能使用系统提供的固定样式。分享的类型受限,只能分享text、url、image。

②第三方分享

  • 优点
    开发者可以按照第三方文档自己定制分享界面UI、功能。分享的类型可以自由选择,除了text、url、image。还有其他格式多媒体(声音、视频、文件等)可供选择。
  • 缺点
    需要去友盟以及各个分享平台注册繁杂的账号、导入臃肿的SDK包。配置跳转白名单。

2.原生分享实现

说了优缺点,下面再说一下功能的具体实现。第三方分享的实现,网上已经有很多文章,各个平台也有自己的开发文档以及技术支持,我这里就不再赘述,下面主要说一下原生分享的实现。

- (void)shareButtonDidTouched:(UIButton *)button
{
    NSString *textToShare1 = @"要分享的文本内容";
    UIImage *imageToShare = [UIImage imageNamed:@"redEnvelope"];
    NSURL *urlToShare = [NSURL 
    NSArray *activityItems = @[textToShare1, imageToShare, urlToShare];
    UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:activityItems applicationActivities:nil];

    //去除一些不需要的图标选项
    activityVC.excludedActivityTypes = @[UIActivityTypePostToFacebook, UIActivityTypeAirDrop, UIActivityTypePostToWeibo, UIActivityTypePostToTencentWeibo];

    //成功失败的回调block
    UIActivityViewControllerCompletionWithItemsHandler myBlock = ^(UIActivityType __nullable activityType, BOOL completed, NSArray * __nullable returnedItems, NSError * __nullable activityError) {

        if (completed){
            NSLog(@"completed");
        }else{
            NSLog(@"canceled");
        }
   };
    = myBlock;

    [self presentViewController:activityVC animated:YES completion:nil];
}
值得一提的是苹果原生分享还能判断是否分享成功,而微信原生的分享接口已经不再区分成功失败的回调,而第三方的微信分享其实就是对微信原生分享的一层封装,所以第三方分享也不再区分分享成功失败的返回。 微信分享功能调整公告

如你所见,原生分享,只需要实现👆上面的那一段代码,实现简单的优势十分明显,但如上所述,缺点也十分明显,样式流程固定,如下图


分享流程图一 分享流程图二

分享出去后的样式如下图


原生分享效果图

而第三方的分享,UI定制化程度高,而且分享出去后还会带有APP的图标及名称,可识别程度高,更利于推广。如下图


第三方分享效果图

所以,最终选择哪种分享效果,需要你自己去权衡把握。

3.题外

原生分享列表

Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务