AndroidStudio ShareSDK集成

shareSDK集成

MOD官网为开发者提供很多的服务,包括推送服务(MobPush)、社会化分享服务(ShareSDK)、手机短信验证功能(SMSSDK)、即时聊天功能(MobIM)、各种常用数据服务(MobAPI)等多种服务。本文主要介绍ShareSDK的集成问题。

在官网注册并登录后,创建应用,并记住Appkey 以及App Secret,后面的配置会用到。

一、配置gradle
1.在项目build.gradle 文件中,在buildscript–>dependencies 模块下面添加 classpath ‘com.mob.sdk:MobSDK:+’,如下所示:

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        ...
        classpath 'com.mob.sdk:MobSDK:+'

    }
}

2.使用到Mob产品的module下面的build.gradle文件里面添加引用

apply plugin: 'com.mob.sdk'

3.在build.gradle 文件根目录添加MobSDK方法,配置mob的key和秘钥

注意:MobSDK方法是配置到文件根目录,与android并列,不要配置到android里面哦

MobSDK {
    appKey "d580ad56b4b5"
    appSecret "7fcae59a62342e7e2759e9e397c82bdd"

    ShareSDK {
        //平台配置信息
        devInfo {
            SinaWeibo {
                appKey "568898243"
                appSecret "38a4f8204cc784f81f9f0daaf31e02e3"
                callbackUri "http://www.sharesdk.cn"
                shareByAppClient false
            }
            Wechat {
                appId "wx4868b35061f87885"
                appSecret "64020361b8ec4c99936c0e3999a9f249"
            }
            QQ {
                appId "100371282"
                appKey "aed9b0303e3ed1e27bae87c33761161d"
            }
            Facebook {
                appKey "1412473428822331"
                appSecret "a42f4f3f867dc947b9ed6020c2e93558"
                callbackUri "https://mob.com"
            }
        }
    }

}

Onekeyshare是ShareSDK的GUI界面,如果不需要,则需要添加”gui false”,因为默认是使用gui;
version字段为SDK的版本号,不设置则使用最新的版本。
devInfo 是平台配置信息,可在SDK下载中心 获取自己所需的配置信息

4.初始化
如果没有在AndroidManifest中设置appliaction的类名,MobSDK会将这个设置为com.mob.MobApplication,但如果您设置了,请在您自己的Application类中调用以下代码初始化MobSDK:

MobSDK.init(this);

并且在AndroidManifest清单文件中配置:tools:replace="android:name",如下所示:

<application
   android:name = ".MyApplication"
   tools:replace="android:name">

5.一键分享

private void showShare() {
    OnekeyShare oks = new OnekeyShare();
    //关闭sso授权
    oks.disableSSOWhenAuthorize();

    // title标题,微信、QQ和QQ空间等平台使用
    oks.setTitle(getString(R.string.share));
    // titleUrl QQ和QQ空间跳转链接
    oks.setTitleUrl("http://sharesdk.cn");
    // text是分享文本,所有平台都需要这个字段
    oks.setText("我是分享文本");
    // imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
    oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片
    // url在微信、微博,Facebook等平台中使用
    oks.setUrl("http://sharesdk.cn");
    // comment是我对这条分享的评论,仅在人人网使用
    oks.setComment("我是测试评论文本");
    // 启动分享GUI
    oks.show(this);
}

配置字段说明

属性 描述
id 数字,平台的id,可以设置为任何不重复的数字,(可选字段)
sortId 数字,九宫格界面平台的排序,越小越靠前,可以设置为任何不重复的数字,(可选字段)
appId 文本,对应ShareSDK.xml中的AppId、ClientID、ApplicationId、ChannelID
appKey 文本,对应ShareSDK.xml中的AppKey、ConsumerKey、ApiKey、OAuthConsumerKey
appSecret 文本,对应ShareSDK.xml中的AppSecret、ConsumerSecret、SecretKey、Secret、ClientSecret、ApiSecret、ChannelSecret
callbackUri 文本,对应ShareSDK.xml中的RedirectUrl、RedirectUri、CallbackUrl
shareByAppClient 布尔值,shareByAppClient标识是否使用客户端分享
bypassApproval 布尔值,bypassApproval表示是否绕过审核
enable 布尔值,enable字段表示此平台是否启用
userName 文本,userName在微信小程序中使用
path 文本,path在微信小程序中使用
hostType 文本,表示服务器类型,在YouDao和Evernote中使用
withShareTicket 布尔值,分享微信小程序时,分享出去的小程序被二次打开时可以获取到更多信息,true为能获取,反之不能;仅在微信中使用
miniprogramType 数字,分享微信小程序时,表示小程序的开发状态,取值范围:0-正式,1-开发,2-体验,仅在微信中使用

混淆设置

跳过对ShareSDK的混淆操作:

-keep class cn.sharesdk.**{*;}
-keep class com.sina.**{*;}
-keep class **.R$* {*;}
-keep class **.R{*;}
-keep class com.mob.**{*;}
-keep class m.framework.**{*;}
-dontwarn cn.sharesdk.**
-dontwarn com.sina.**
-dontwarn com.mob.**
-dontwarn **.R$*

参考:Mob官网文档帮助

你可能感兴趣的:(Android)