新版本友盟分享集成及几点注意事项

作者: YoChar | 来源:发表于2016-12-06 10:22 被阅读2897次

    在iOS开发中,社交分享已经是一个常见的功能。当我们需要快速集成多个平台的分享时,一般会选择一些第三方的分享平台,例如友盟分享。

    友盟分享经过多年的发展,现在推出了新版SDK6.1。相比之前的版本,新版友盟在使用方法上更加方便简洁了。但由于改动较大(文件、方法等都有了改动),以前版本的很多使用方法都不能用了,调用方法就有所不同了。

    下面就跟大家分享一些在集成和调用时可能遇到或要注意的问题。

    1、在我们选择友盟的集成方式后(手动集成或通过Cocoapods集成)。有可能会碰到这样的问题:

    使用Cocoapods时被提醒搜索不到友盟的文件。很抱歉的告诉你,你Cocoapods的镜像gem源很有可能是过期了。你需要更换gem源:

    gem sources –removehttps://ruby.taobao.org/

    gem source -ahttps://gems.ruby-china.org

    2、集成之后编译不通过。

    这种情况下很大可能是在手动集成时少加入了某些分享平台所需的依赖库。

    当在检查完毕后发现并没有少任何依赖库,或者你是Cocoapods集成的但是就是编译不过,这是怎么回事呢?

    还有一种可能就是: bitcode设置问题,自后Xcode7.0后项目默认就打开了bitcode设置。然而如果项目链接了第三方二进制的库或者框架(这边指友盟),这个框架又恰好没有包含bitcode的东西(这个东西是啥可自行百度),就会导致项目编译不成功。解决方法就是到你项目的Build Settings搜索一下bitcode,把这货设置成NO再编译,如下图:

    设置bitcode


    3.集成后切记要设置友盟的Appkey和第三方平台的URL Scheme:

    设置友盟和第三方平台key

    如上图在AppDelegate的didFinishLaunchingWithOptions方法中做好友盟的初始化工作。其中友盟的Appkey为友盟账号中申请的应用key。其他第三方的appKey和appSecret为你到对应开放平台申请的应用信息中的key和secret(部分第三方平台只有key)。

    设置第三方URL Schemes

    如上图在Info下方添加URL Types设置对应的第三方URL Schemes。这里一定注意要按照官方文档说的格式来设置。如果设置错误将导致分享之后无法跳回自己应用。格式如下:

    友盟提供的URL Schemes格式

    4.官方文档所提及的适配iOS9,iOS10。要设置为了跳转所需的第三方白名单,而且如果你用的还是HTTP不是HTTPS那么还要设置HTTP白名单。设置详情官方文档中有详细说明,这边就不多啰嗦了。

    做完上述工作就可以开始使用友盟SDK调用分享面板,并且根据自己需要来设置分享内容。在这以最常见的链接分享为例。(具体参照官方文档第三方平台分享)

    显示出友盟的平台选择面板
    创建分享内容

    5.最后提醒iOS友盟使用者,如果你的应用是要做上线appStore的那么一定要记得设置预定义平台。预定义平台就是判断用户是否安装了相应的第三方应用,如果没有就隐藏。在分享面板上将不进行显示。

    先导入相应的头文件 设置预定义平台

    特别要注意的是官方文档明确提到这必须在调用分享面板之前进行设置,而且传入的平台必须是合法并且是core模块已经检测到的已经存在的平台,不然会被过滤掉(此条款是上线appStore审核的条件,开发者必须注意)。

    以上就是本人对新版本友盟做的一些小细节分享,希望可以帮到在使用友盟SDK的你。详细内容还是要请仔细参照官方SDK文档。

    谢谢~

    相关文章

      网友评论

      • 小小夕舞:我设置了url scheme 还有友盟以及微信新郎的key和secret 但是面板只有新浪的 没有微信和朋友圈的 为啥
      • Liusr:didFinishLaunchingWithOptions做初始化操作,每次app启动都要做吗
      • 4145c4242b60:楼主 我现在用的是6.4版本,友盟的文档中也没有明确要求隐藏没有的app平台,请问我还需要去判断是否已经安装了某个平台的app吗???麻烦帮忙看看友盟的官网吧!谢谢
      • cc4514ad7716:楼主大人呀,那个你说的预设平台的那些头文件都是在哪里下载的呀,我下载的友盟SDK里面没有呀
        YoChar:额。。就是在SDK的frameworks里面。可能是版本不一样吧
      • 知了此生:楼主我想问一下,预定义平台的意思是,如果没有安装就不显示了是吗?就意味着不能使用网页登录再进行分享了?也不会提示安装某个平台了?不隐藏就通不过审核了是吗?
        YoChar:5楼的大兄弟亲测不判断也能上线啦 。只是根据官方文档的建议这么做而已撒。
      • 童话镇里蜿蜒的河:楼主你好 。 问下 现在还需要去自己判断哪些app没安装么? 我看他好像自己带这个功能,是不是意味着我们不用再代码里写了
        YoChar:@前方的光 在官方文档还没变之前,保险起见就判断下咯。
        童话镇里蜿蜒的河:@YoChar 哦 意思是 及时是现在的版本 还是需要先去判断下咯。
        YoChar:@前方的光 嗯,这边是响应官方文档的建议,先做判断。不做判断也能正常使用,不过有可能影响审核哦。
      • 益达哥:请问下,微博分享怎样可以带图片啊,我是图片加文字和链接,但是写的图片被内置URL那里去了,导致分享出去就是一个内容和链接。
        UMSocialMessageObject *messageObj = [UMSocialMessageObject messageObject];

        UMShareWebpageObject *shareObject = [UMShareWebpageObject shareObjectWithTitle:_shareTitle descr:_shareText thumImage:_image];
        shareObject.webpageUrl = _url;


        messageObj.shareObject = shareObject;
        YoChar:@益达哥 这种需求我也没试过,你参考一下官方 API,应该是要用其他类的方法。
      • time_xie:我检测了微信可是分享面板还是没有微信啊?
        YoChar:@凄凄切切111111 是真机测试的吗,你真机上有安装微信且版本够就会显示的。
      • ZPCoder:我这一直 linker command failed with exit
        YoChar:@ZPCoder 对照官方文档检查下依赖库是不是有漏掉的。再依照第二点设置bitcode然后clean下试试。

      本文标题:新版本友盟分享集成及几点注意事项

      本文链接:https://www.haomeiwen.com/subject/jyolmttx.html