我们首先要去友盟官网注册账号并登录,然后在首页顶部导航产品栏下选择社会化分享,然后点击立即使用进入友盟分析后台,点击右上角第一个应用列表图标 即可进入我创建的应用列表,如果还没有创建过应用或者想创建新的应用都可以切换到管理页面在右上角点击添加新应用进行创建,填写应用的基本信息提交之后就可以获得AppKey了。
申请QQ, QQ空间,微信,朋友圈,新浪微博需要的appkey, appid, appsecret等:
qq开发账号:http://open.qq.com/
微信开发账号:https://open.weixin.qq.com/
微博开发账号:http://open.weibo.com/
各平台appKey获取方法:http://bbs.mob.com/thread-275-1-1.html
下载地址:http://dev.umeng.com/social/android/sdk-download
根据自己的项目需要选择对应的平台
下载后解压出来如下图,有三个文件夹:
1、导入jar文件,资源文件,以及so文件
将三个文件夹下所有的jar和资源文件放入项目中,此处注意在thirdparties文件夹下除了有jar文件还有.so文件,那么.so文件我们要如何添加到项目中呢?有如下两种方式:
方式一:在项目的main目录下创建jniLibs目录,并将所有的.so文件全部放在该目录下,因为Android Studio 默认的so文件路径是app/src/main/jniLibs/armeabi,有时还需要添加armeabi-v7a,x86文件夹,视平台酌情增删,如下图:
方式二:当然这个so文件的默认目录是可以改变的的,比如在gradle脚本里配置sourceSets如下:
这样配置的话,so文件位置就和jar文件目录一致都在项目的libs目录下,如下图,但本人还是推荐使用as默认的文件目录结构。
2、添加回调Activity
2.1,微信回调
在包名目录下创建wxapi文件夹,新建一个名为WXEntryActivity的activity继承WXCallbackActivity,如下图:
2.2,QQ与新浪微博的回调:
QQ与新浪不需要添加Activity,但需要在使用QQ分享或者授权的Activity中添加如下代码:
(注意onActivityResult不可在fragment中实现,如果在fragment中调用登录或分享,需要在fragment依赖的Activity中实现)
注意:实际项目中发现,QQ分享成功和取消时没有走相应的回调方法,原因可能有以下两种:
1,很可能是没有重写onActivityResult方法
2,是你的分享代码代码写在了Fragment中,QQ分享成功后并不走Fragment的onActivityResult()方法,需要把分享的方法写在Activity中,并在onActivityResult方法中添加回调监听,然后在Fragment中调用Activity中的分享方法即可。
3、配置清单文件AndroidManifest
3.1,添加权限
3.2,SDK中需要的activity配置
3.3,添加友盟appkey(appkey可以在清单文件中配置,也可以不配置,如果不在清单文件中配置,则需要在application的子类中指明,具体再往下看)
4、在MyApplication中进行初始化设置,如下:
新浪微博回调地址redirect_url(授权回调页)的设置格式:
首先注册成为新浪微博开放平台开发者,并填写基本信息,进行邮箱确认。之后创建应用新浪app,就会获得app key , app secret.
回调地址格式:http://open.weibo.com/apps/appKey/privilege/oauth
例如:appKey=3564760100
redirect_url=http://open.weibo.com/apps/3564760100/privilege/oauth
5、签名的配置
5.1,为什么要配置签名?
我们在测试Android应用的时候,可以指定build的类型是debug,Android Studio的debug包和release包是有区分的,但很多第三方都要有正式签名才能测试,而系统debug包的默认签名是无法进行测试的。
例如如果我们做微信分享功能,因为微信分享是需要正式的签名的,你们是不是每一次都需要自己打包获取到具有正式签名的apk后才能测试微信分享功能?打包那个速度估计各位都有深切体会,喝杯茶的时间估计快有了!
所以问题的症结就在于:如何打包都有正式签名的测试包和发布包,而且不需要修改代码,即就是如何debug运行具有release签名的apk,请看下面完整教程。
5.2,Android Studio 下debug情况下如何直接使用release的签名,完整过程如下:
-
首先我们需要使用Android studio来生成.jks(Java Key Store)后缀的签名文件,具体如何生成不会的同学请参考博客https://www.jianshu.com/p/4da94c5757f7,里面有详细步骤,假如我们生成的签名文件存放路径为:E:/key/demo/test.jks。
-
在app的build.gradle文件中这样配置:
- 然后我们可以检查一下我们的配置:
打开Project Structure面板,选择Signing,就可以看到我们第2步配置的signingConfigs的release信息,如下图:
这里是我们只写了一个release配置,也可以在这里添加另外一个签名配置,而且签名文件的路径可以在这里设置,妈妈 再也不用担心我不会写工程路径了… - 然后我们继续选择面板上的Build Types,左侧选择debug,右侧Signing Config下拉也选择release,在gradle文件中可以看出我们在signingConfigs里面只设置了一个release配置,所以这里下拉选择也只有一个release。
发现在debug版本的也是我们的relase版本了!!
然后我们可以轻轻松松的点击运行按钮,生成的apk直接用的就是是正式签名!!!就可以直接run运行测试微信分享和支付了,也就不用在按照官方文档使用它们demo里面提供的debug签名了。
6.1,主界面布局文件activity_umlogin_and_share.layout代码:
5.2,UMLoginAndShareActivity的完整代码:
5.3,分享功能封装的工具类,支持弹出面板和不弹出面板两种方式,以及对弹出面板根据自己的app风格做样式调整,代码如下:
5.4,分享内容模拟类,代码如下:
**