iOS 利用静态库封装自定义第三方分享的面板

我的另一篇文章详细的介绍了如何制作静态库,这里简单介绍下。

  • 步骤1:创建静态库项目,名字为ZBShareView

    iOS 利用静态库封装自定义第三方分享的面板_第1张图片
    image.png

  • 步骤2:向.h和.m写入自定义第三方分享的面板的代码

image.png
  • 步骤3:将包含图片的,后缀为.bundle的文件拖动到ZBShareView项目中。


    iOS 利用静态库封装自定义第三方分享的面板_第2张图片
    image.png
  • 步骤4:切换到模拟器,Command+B编译一下;然后切换到真机模式,Command+B再编译一下。

image.png

image.png

  • 步骤5:show in finder一下libZBShareView.a文件
iOS 利用静态库封装自定义第三方分享的面板_第3张图片
image.png
  • 步骤6:cd到ZBShareView项目的Products目录

iOS 利用静态库封装自定义第三方分享的面板_第4张图片
image.png

  • 步骤7:lipo -create 模拟器的静态库的路径 真机静态库的路径 -output 合并之后的文件名称
iOS 利用静态库封装自定义第三方分享的面板_第5张图片
image.png
  • 步骤8:静态库制作成功
iOS 利用静态库封装自定义第三方分享的面板_第6张图片
image.png

  • 步骤9:切换到公司项目,在Podfile文件中导入友盟5.0
iOS 利用静态库封装自定义第三方分享的面板_第7张图片
image.png

  • 步骤10:安装友盟5.0


    iOS 利用静态库封装自定义第三方分享的面板_第8张图片
    image.png

  • 步骤11:将静态库、bundle文件、.h文件导入到公司的项目中。


    iOS 利用静态库封装自定义第三方分享的面板_第9张图片
    image.png

  • 步骤12:添加微信、QQ、新浪微博的URL Schemes
iOS 利用静态库封装自定义第三方分享的面板_第10张图片
image.png

  • 步骤13:由于苹果公司限制了http协议的访问,需要在“Info.plist”文件中将使用的URL Schemes列为白名单,才可正常检查其他应用是否安装。
 LSApplicationQueriesSchemes
    
        wechat
        weixin
        sinaweibohd
        sinaweibo
        sinaweibosso
        weibosdk
        weibosdk2.5
        mqqapi
        mqq
        mqqOpensdkSSoLogin
        mqqconnect
        mqqopensdkdataline
        mqqopensdkgrouptribeshare
        mqqopensdkfriend
        mqqopensdkapi
        mqqopensdkapiV2
        mqqopensdkapiV3
        mqzoneopensdk
        wtloginmqq
        wtloginmqq2
        mqqwpa
        mqzone
        mqzonev2
        mqzoneshare
        wtloginqzone
        mqzonewx
        mqzoneopensdkapiV2
        mqzoneopensdkapi19
        mqzoneopensdkapi
        mqqbrowser
        mttbrowser
        renrenios
        renrenapi
        renren
        renreniphone
        laiwangsso
        yixin
        yixinopenapi
        instagram
        whatsapp
        line
        fbapi
        fb-messenger-api
        fbauth2
        fbshareextension
    

  • 步骤14:在AppDelegate文件中宏定义并初始化key和secret


    iOS 利用静态库封装自定义第三方分享的面板_第11张图片

  • 步骤15:在需要分享的页面导入头文件
#import "UMSocial.h"
#import "ZBShareView.h"
  • 声明全局的属性
@property(nonatomic,strong)ZBShareView *shareView;

  • 分享的调用代码
-(void)showShare{
    self.shareView = [ZBShareView vc:self itemsArray:@[UMShareToWechatSession,UMShareToWechatTimeline,UMShareToQQ,UMShareToQzone,UMShareToSina] shareTitle:@"一秒招聘哦" shareImg:@"logo108.png" shareUrl:nil];
//    [self.view addSubview:self.shareView];// 这样写有时候会出现弹不出来自定义分享页
    //    [[UIApplication sharedApplication].keyWindow addSubview:self.shareView];// 这样写有时候会出现弹不出来自定义分享页
    UIWindow *topWindow = [[[UIApplication sharedApplication] delegate] window];// 应该这么写
    [topWindow addSubview:self.shareView];
  
    __weak __typeof(self) weakSelf = self;
    
    
    self.shareView.sureClick = ^(NSArray *type, NSString *title, UIImage *image) {
        [[UMSocialDataService defaultDataService]  postSNSWithTypes:type content:title image:image location:nil urlResource:nil presentedController:weakSelf completion:^(UMSocialResponseEntity *response){
            NSLog(@"走回调%@",response);
            if (response.responseCode == UMSResponseCodeSuccess) {// 分享成功后执行如下操作
                NSLog(@"分享成功!");
                // 移除分享视图
                [weakSelf hiddenView];
                
            }
        }];
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            [weakSelf hiddenView];
        });
        
        
    };
    
}

-(void)hiddenView{
    [ self.shareView dismissShareView];
}

  • 步骤15:在APP中验证集成情况。
101.1754.gif

百度网盘链接

PS:代码1或者代码2有时候会出现点击分享没有弹出分享页的问题。代码3会解决这个问题。所以应该用代码3

     // 代码1
     //    [self.view addSubview:self.shareView];// 这样写有时候会出现弹不出来自定义分享页
 
     // 代码2   
     //   [[UIApplication sharedApplication].keyWindow addSubview:self.shareView];// 这样写有时候会出现弹不出来自定义分享页

    // 代码3
    UIWindow *topWindow = [[[UIApplication sharedApplication] delegate] window];// 应该这么写
    [topWindow addSubview:self.shareView];

你可能感兴趣的:(iOS 利用静态库封装自定义第三方分享的面板)