您好,欢迎来到源码搜藏!分享精神,快乐你我!提示:担心找不到本站?在百度搜索“源码搜藏”,网址永远不丢失!
  • 首 页
  • 在线工具
  • jquery手册
  • 当前位置:首页 > 安卓源码 > 技术博客 >

    Android集成添加社会化分享详解

    时间:2018-01-25 09:16 来源:互联网 作者:源码搜藏 浏览:收藏 挑错 推荐 打印

    现如今app市场竞争激烈,做app不会放过任何推广自己的app的渠道,如果app中没有社会化分享功能,那真的是OUT了,我们先来看下一些app中的分享界面功能吧。 现在主流的分享平台,一般用的都是微信、QQ、微博,国外的话就Fb、Twitter等,如果每一个都要去单独
    现如今app市场竞争激烈,做app不会放过任何推广自己的app的渠道,如果app中没有社会化分享功能,那真的是OUT了,我们先来看下一些app中的分享界面功能吧。
    Android集成添加社会化分享详解
           现在主流的分享平台,一般用的都是微信、QQ、微博,国外的话就Fb、Twitter等,如果每一个都要去单独加,对我们来说是耗时耗力,最重要的是每个第三方的SDK都很大,会增大很多包的体积,这个是我们最不想看到的;
           现在市面上提供了很多SDK,从集成速度,包的体积,平台多样,服务响应,用户基数上来讲,ShareSDK是个不错的选择,最重要的是,现在上了maven的集成方式,集成超快。
    简单的准备工作
        下面我们看看我们需要做的准备工作,首先先确定我们想要分享的第三方平台,这里面我们就以国内主流的平台举例,微信、QQ、微博;首先我们必须去其第三方平台去申请应用得到对应的appid等信息,第三方给了appid,我们才可以去做分享;
    话不多说上网站:
    QQ:http://open.qq.com QQ与QZone共用一套key即可
    微信:http://open.weixin.qq.com 微信好友,微信朋友圈,微信收藏共用一套key即可
    微博:http://open.weibo.com
         哦对了,ShareSDK有提供一些常见平台的申请步骤,点击这里去围观能帮助我们快速的进行注册;
    ShareSDK集成步骤
    第一步,注册账号申请ShareSDK应用
         ShareSDK的AppKey直接到Mob官网申请即可,具体的注册应用的流程请参考这里:Mob创建应用流程
         拿到appkey与appsecret了我们去看看文档吧,http://wiki.mob.com/进入ShareSDK快速集成文档猛戳这里,这个时候有人会问,问什么不下载SDK,直接开始看文档集成了呢,因为ShareSDK 提供了Gradle的maven集成方式,无需手动下载,无需手动配置资源,权限;是不是听起来很牛B,忍不住去看看;
    第二步,sharesdk的maven集成
           首先、如下图所示,需要在build.gradle中配置

    [代码]java代码:

    ?
    1
    2
    3
    4
    5
    6
    7
    maven {
       url "http://mvn.mob.com/android"
       }
     
       dependencies {
       classpath 'com.mob.sdk:MobSDK:+'
       }

    添加的位置按照截图上面的配置即可;

    Android集成添加社会化分享详解


           其次,在使用到Mob产品的module下面的build.gradle文件里面添加引用

    [代码]java代码:

    ?
    1
    applyplugin:'com.mob.sdk'
    maven集成方式可以在Mob产品的module下面的build.gradle文件里面配置ShareSDK各个社交平台的key信息

    [代码]java代码:

    ?
    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    MobSDK {
     
       appKey "d580ad56b4b5"
       appSecret "7fcae59a62342e7e2759e9e397c82bdd"
     
       ShareSDK {
            gui true //调用ShareSDK默认的界面
           //平台配置信息
           devInfo {
               SinaWeibo {
                  appKey "568898243"
                  appSecret "38a4f8204cc784f81f9f0daaf31e02e3"
                  callbackUri "http://www.sharesdk.cn"//回调地址,需要与微博后台配置的回调地址一致,http://bbs.mob.com/forum.php?mod=viewthread&tid=47
                  shareByAppClient true
               }
     
               Wechat {
                   appId "wxdb0f7a71c883b423"
                   appSecret "64020361b8ec4c99936c0e3999a9f249"//登录需要配置appsecret 分享不需要配置
               }
     
               WechatMoments{
                   appId "wxdb0f7a71c883b423"
                   appSecret "64020361b8ec4c99936c0e3999a9f249"//登录需要配置appsecret 分享不需要配置
                   bypassApproval false
     
               }
     
               QQ {
                   appId "100371282"
                   appKey "aed9b0303e3ed1e27bae87c33761161d"
                   shareByAppClient true
               }
     
               QZone {
                   appId "100371282"
                   appKey "aed9b0303e3ed1e27bae87c33761161d"
                   bypassApproval false
               }
           }
       }
    }
    配置第三方key的字段说明可以点击这里看文档即可;

    Android集成添加社会化分享详解
           如上图所示配置完之后点击Sync Now进行重新编译,到这里我们就集成完成了,下面我们调用代码即可;
           注意事项:如果您没有在AndroidManifest中设置appliaction的类名,MobSDK会将这个设置为com.mob.MobApplication,但如果您设置了,请在您自己的Application类中调用:

    [代码]java代码:

    ?
    1
    MobSDK.init(this);
           并且在Manifest清单文件中配置:tools:replace=”android:name”,如下所示:

    [代码]java代码:

     

    ?
    1
    2
    3
    <application
       android:name = ".MyApplication"
       tools:replace="android:name">

    第三步,代码调用

     下面的代码就是onekeyshare的分享,即ShareSDK下面配置的gui true才可以调用,下面的代码复制到您的工程中,在需要分享的地方调用即可;

    [代码]java代码:

    ?
    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    private void showShare(String platformToShare) {
            OnekeyShare oks = new OnekeyShare();
            //关闭sso授权
            oks.disableSSOWhenAuthorize();
            if (platformToShare != null) {
                oks.setPlatform(platformToShare);
            }
            // title标题,微信、QQ和QQ空间等平台使用
            oks.setTitle("测试标题");
            // titleUrl QQ和QQ空间跳转链接
            oks.setTitleUrl("http://www.baidu.com");
            // text是分享文本,所有平台都需要这个字段
            oks.setText("我是分享文本");
            //分享网络图片、分享本地图片用oks.setImagePath("/sdcard/test.jpg");确保SDcard下面存在此张图片
            oks.setImageUrl("https://lanre.smartemple.cn/image/share.png");
            // url在微信、微博,Facebook等平台中使用
            oks.setUrl("http://sharesdk.cn");
            // comment是我对这条分享的评论,仅在人人网使用
            oks.setComment("我是测试评论文本");
    /*      //onekeyshare默认提供了默认的分享回调Toast提示,如果想要自己定义调用setCallback即可,不需要自定义的可以忽略,值得一提的是callback回调是子线程,需要传到主线程之后去操作后续内容哦;   
            oks.setCallback(new PlatformActionListener() {     
                @Override
                public void onError(Platform arg0, int arg1, Throwable arg2) {
                    // TODO Auto-generated method stub             
                }          
                @Override
                public void onComplete(Platform arg0, int arg1, HashMap<String, Object> arg2) {
                    // TODO Auto-generated method stub         
                }
                 
                @Override
                public void onCancel(Platform arg0, int arg1) {
                    // TODO Auto-generated method stub             
                }
            });*/
            // 启动分享GUI
            oks.show(this);
        }

    值得一提的是,onekeyshare的分享是根据调用的分享的方法自动适配分享类型,每个平台分享的方法不同,具体可以点击这里去看ShareSDK的文档说明

    下面我们就可以去测试了,在监听按钮下调用

    [代码]java代码:

    ?
    1
    showShare(null);
    效果如下:
    Android集成添加社会化分享详解
    此时点击平台跳转分享即可;
           如果不想用OneKeyShare的界面很简单,很多小伙伴肯定也发现了刚才我的方法中private void showShare(String platformToShare) 有一个参数,如果想单独调用修改这个参数即可,比如,我想单独跳转QQ,则在这个方法里面传QQ.NAME即可,其他的平台名称看ShareSDK的快速集成文档即可,效果如下:
    Android集成添加社会化分享详解
    Demo下载地址:链接:https://pan.baidu.com/s/1nxh2Bqh 密码:j4c3
    常见问题说明:
    1、微信分享提示分享失败:检查分享内容,特别是图片是否有效,或者只分享文字测试
    2、微信分享闪一下调用不起来微信客户端:检查微信后台配置的包名是否与配置的applicationId一致;检查微信后台配置的应用签名是否与您的app的应用签名一致;
    3、新浪微博客户端分享提示分享成功,但是会保存到草稿箱发送不出去,检查微博后台配置的包名和签名,与您的app的不一致导致的
    4、QQ分享不需要审核通过即可分享,but,需要配置一些基本的信息,IOS与android平台可以共用一套key,但是别忘了两个平台的基本信息都要配置下;
    5、微信是通过审核之后才会给我们appid的,所以必须要通过审核才可以正式分享,并且必须保证微信后台配置的包名和应用签名与我们的app的包名和应用签名一致,否则无法正分享,做微信第三方登录的小伙伴,别忘了去申请权限还要每年300块哦;
    6、新浪微博、申请的时候就会给我们appkey和appsecret了,但是别忘了配置回调地址,不知道回调地址怎么配置都可以点击这里进行查看,新浪微博和微信一样都需要配置包名和应用签名,这一点需要注意,如果包名和签名不一致客户端分享会报错的哦。

    Android集成添加社会化分享详解转载http://www.codesocang.com/appboke/38384.html
    标签:网站源码