这可能是你见过最人性的友盟集成第三方分享

前言

第三方分享在日常开发中已经是见怪不怪了,为了方便快捷,大多数情况下我们都会使用第三方平台提供的分享功能,来集成第三方分享,这里我将带大家使用友盟完成第三方分享,这可能是迄今为止最人性的教程,相信我,这比繁琐的官网要简单的多。如果你只是想练习一下demo而非实战,我建议可以去友盟官网下载demo查看学习。

集成顺序及步骤

为了更加清晰明了,我会将教程分为三个集成环节

  1. 第三方开发者平台申请
  2. 友盟申请
  3. 集成友盟分享

第三方开发者平台申请

这一环节主要是申请各自分享平台的AppKeyAppIdAppSecret
这里提供主流分享的三方开发者平台,大家可以根据自己情况自行申请,当然我相信,现在大多数已经只分享 QQ 微信 微博了。其他平台大家可自行搜索,就让我偷个小懒。

image

友盟申请

登录到友盟官网,https://www.umeng.com/
创建友盟账号,登录后创建新应用,得到新应用的AppKey,这里需要注意的是,如果公司有安卓版和IOS版,需要申请两个新应用,不同平台的应用禁止使用相同的Appkey,如果在创建时提示应用名称已存在,不用担心,后台的应用名与实际应用名和包名无关,也就是这里随便取都可以,建议命名为应用名+平台(iOS/Android),这样好区分嘛。

集成友盟分享

短短篇幅我们就来到文章最重要的地方,这里我会非常详细的介绍如何集成和分享,当然所有的前提是,你已经得到了需要分享的平台的AppKeyAppIdAppSecret和友盟的AppKey

第一步:集成jar包和添加相应的布局文件和图片资源

https://developer.umeng.com/sdk 中,我们勾选 社会化分享 SDK


然后点击右边的设置

在这里我们勾选我们需要分享的平台,这里实战演练为新浪,QQ,微信,这也是友盟默认为我们勾选的,关于完整版与精简版,大家点击旁边的问号就能查看区别所在,这里就不多阐述了。
确定后,我们点击下载,得到压缩包,解压后是这样子的:

我们需要将common和share下的所有jar包复制出来(记住是所有的),thirdparties可以不用管,放到项目的libs下,如项目图所示:

接下来将share下所有的xml文件放到项目的layout包中,将所有图片资源放到drawable包中,很重要哈,如果没有添加,使用友盟默认的弹窗样式和图片就会报错!!!

第二步:在注册清单添加权限及相应的代码
        <!--友盟分享-->
        <!--新浪-->
        <activity
            android:name="com.umeng.socialize.media.WBShareCallBackActivity"
            android:configChanges="keyboardHidden|orientation"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"
            android:exported="false"
            >
        </activity>
        <activity android:name="com.sina.weibo.sdk.web.WeiboSdkWebActivity"
            android:configChanges="keyboardHidden|orientation"
            android:exported="false"
            android:windowSoftInputMode="adjustResize"
            >

        </activity>
        <activity
            android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
            android:launchMode="singleTask"
            android:name="com.sina.weibo.sdk.share.WbShareTransActivity">
            <intent-filter>
                <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>

        </activity>
        <!--微信-->
        <activity
            android:name=".wxapi.WXEntryActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:exported="true"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />
        <!--QQ-->
        <activity
            android:name="com.tencent.tauth.AuthActivity"
            android:launchMode="singleTask"
            android:noHistory="true" >
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                //例如appid为123456789,那这里填写tencent123456789
                <data android:scheme="tencent填写自己申请的appid" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.tencent.connect.common.AssistActivity"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"
            android:configChanges="orientation|keyboardHidden|screenSize"/>
        <!--友盟分享end-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>   
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
第三步:初始化代码配置

在Application中,初始化

UMConfigure.init(this, "友盟的Appkey", "umeng", UMConfigure.DEVICE_TYPE_PHONE, "");
//微信
PlatformConfig.setWeixin("Appkey","AppSecret");
 //新浪微博(第三个参数为回调地址)
 PlatformConfig.setSinaWeibo("Appkey", "AppSecret","http://sns.whalecloud.com/sina2/callback");
 //QQ
 PlatformConfig.setQQZone("AppId", "AppSecret");
第四步:在需要使用分享的地方重写onActivityResult
@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
    }
第五步:分享代码

关于分享,我觉得在这里阐述还是比较累赘,本文主要介绍集成过程,如果你已经到了这一步,那么恭喜你,你只需要完成最后一步即可实现分享,关于分享直接在官网教程更加明白简单。
https://developer.umeng.com/docs/66632/detail/66639#h2-u5206u4EAB12

问题

集成完分享后,可能出现的问题,最简单的方式:

//强烈建议大家在Application中开启友盟日志输出,在出错的地方会在日志中提示并提供解决办法
UMConfigure.setLogEnabled(true);

这里提一个一般大家很容易出现的bug:

点击微信分享闪烁或闪退???

首先检查你的app的签名是否与开发者平台上的签名一致,如果一致,需要清理微信缓存,怎么清理呢?
进入手机设置-应用,找到微信,点击清理缓存即可。清理完成后,再打开app点击微信分享试一试。
如果你有其他问题,可以评论,我会在第一时间回复。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,245评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,749评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,960评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,575评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,668评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,670评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,664评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,422评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,864评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,178评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,340评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,015评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,646评论 3 323
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,265评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,494评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,261评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,206评论 2 352

推荐阅读更多精彩内容

  • 产品概述 Android U-share 6.0sdk是在5.0+的基础上做了进一步的优化,降低了包的大小,对于三...
    AiPuff阅读 7,090评论 1 10
  • 前言 友盟能实现分享功能,友盟+申请第三方账号的目的: 进行分享、授权操作需要在第三方平台创建应用并提交审核,友盟...
    CoderZb阅读 9,710评论 8 60
  •   我们在进行安卓开发的时候,并不能完成所有的功能。目前市场上有许多的服务商给我们提供了各种各样的服务。这里介绍友...
    忆念成风阅读 1,782评论 4 16
  • 代码分四种类型:赋值语句,循环语句,判断语句,控制语句。 每种代码间需要一个空行分开,如果严格按照要求做,代码块思...
    双鲶鱼阅读 375评论 0 1
  • 1.ObjC跟C的区别与联系首先 ObjC是一个面向对象的语言(封装、继承、多态) ObjC相当于C的一个超集 ...
    泥_叔阅读 978评论 0 1