1. 程式人生 > >Android app快速整合Mob shareSDK分享到微信和QQ

Android app快速整合Mob shareSDK分享到微信和QQ

 

Android app整合Mob shareSDK分享到微信和QQ

 

線上安裝方法介紹

 

注意需要用到的appKey和appSecret 請自行到http://www.mob.com官網申請,這裡不介紹申請過程了

 

進入如下下載地址,準備下載shareSDK(其實關鍵是在最終下載過程中會彈出線上安裝的操作提示,這才是我們需要的部分

http://www.mob.com/download

 

如下綠色箭頭所示:依次點選 下載中心--Android版--ShareSDK 3.4.0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

如下圖選擇自己需要分享的平臺微信、QQ等根據需要選擇,選擇

 

 

 

 

 

 

 

在點選上圖的一鍵下載按鈕後 會出現如下圖的提示線上安裝,線上安裝shareSDK的方式比下載shareSDK安裝和配置要簡單的多

新增程式碼線上安裝,免下載SDK

 推薦使用

將上圖的第一步和第二部的程式碼完整貼上到下面:

第一步:

將下面的指令碼新增到您的根模組build.gradle中:

 

buildscript {

    repositories {

        jcenter()

    }

    

    dependencies {

        // 註冊MobSDK

        classpath "com.mob.sdk:MobSDK:2018.0319.1724"

    }

}

 

第二步:

在使用相應模組app模組下的build.gradle中,新增MobSDK外掛和擴充套件,如:

 

 

 

apply plugin: 'com.mob.sdk'

 

MobSDK {

    appKey "替換為mob官方申請的appkey"

    appSecret "替換為mob官方申請的appkey對應的appSecret"

    ShareSDK {

        devInfo {

            SinaWeibo {

                appKey "568898243"

                appSecret "38a4f8204cc784f81f9f0daaf31e02e3"

                callbackUri "http://www.sharesdk.cn"

            }

            TencentWeibo {

                appKey "801307650"

                appSecret "ae36f4ee3946e1cbb98d6965b0b2ff5c"

                callbackUri "http://www.sharesdk.cn"

            }

            Facebook {

                appKey "1412473428822331"

                appSecret "a42f4f3f867dc947b9ed6020c2e93558"

                callbackUri "https://mob.com"

            }

            Twitter {

                appKey "LRBM0H75rWrU9gNHvlEAA2aOy"

                appSecret "gbeWsZvA9ELJSdoBzJ5oLKX0TU09UOwrzdGfo9Tg7DjyGuMe8G"

                callbackUri "http://mob.com"

            }

            LinkedIn {

                appKey "ejo5ibkye3vo"

                appSecret "cC7B2jpxITqPLZ5M"

                callbackUri "http://www.sharesdk.cn"

            }

            Email {}

            ShortMessage {}

            Wechat {

                appId "wx4868b35061f87885"

                appSecret "64020361b8ec4c99936c0e3999a9f249"

                userName "gh_afb25ac019c9"

                path "pages/index/index.html?id=1"

                withShareTicket true

                miniprogramType 2

            }

            QQ {

                appId "100371282"

appKey "aed9b0303e3ed1e27bae87c33761161d"

            }

            WechatMoments {

                appId "wx4868b35061f87885"

                appSecret "64020361b8ec4c99936c0e3999a9f249"

            }

            WechatFavorite {

                appId "wx4868b35061f87885"

                appSecret "64020361b8ec4c99936c0e3999a9f249"

            }

        }

    }

}

 

 

 

在APP的APPApplication檔案中新增初始化程式碼

public class AppApplication extends MultiDexApplication {

    @Override
    public void onCreate() {
        super.onCreate();
        MobSDK.init(this);//http://www.mob.com/ 使用這個公司的分享功能,具體參照官網提示,頁面分享功能初始化
       。。。。。。。
    }

 

 

1

MobSDK.init(this);

 

 

 

在需要分享的介面(頁面)新增分享按鈕等 觸發一個點選事件,在點選事件裡執行如下一鍵分享程式碼

 

 

/**
     *  介面分享到微信微博QQ等其他平臺的方法
     */

其中url是當前被訪問的介面(網頁)的地址
    private void showShare(String url){
        OnekeyShare oks = new OnekeyShare();

        //關閉sso授權
        oks.disableSSOWhenAuthorize();

        // title標題,印象筆記、郵箱、資訊、微信、人人網、QQ和QQ空間使用
        oks.setTitle("標題");

        // titleUrl是標題的網路連結,僅在Linked-in,QQ和QQ空間使用
        oks.setTitleUrl(url);

        // text是分享文字,所有平臺都需要這個欄位
        oks.setText("文字內容");

        //分享網路圖片,新浪微博分享網路圖片需要通過稽核後申請高階寫入介面,否則請註釋掉測試新浪微博
        // oks.setImageUrl("http://f1.sharesdk.cn/imgs/2014/02/26/owWpLZo_638x960.jpg");//網路圖片
        // imagePath是圖片的本地路徑,Linked-In以外的平臺都支援此引數
        //oks.setImagePath("/sdcard/test.jpg");//確保SDcard下面存在此張圖片//本地圖片

        Bitmap bitmap = BitmapFactory.decodeResource(this.getApplicationContext().getResources(), R.mipmap.logo);//顯示APP本身自帶圖片
        oks.setImageData(bitmap);//bitmap格式圖片

        // url僅在微信(包括好友和朋友圈)中使用
        oks.setUrl(url);

        // comment是我對這條分享的評論,僅在人人網和QQ空間使用
        oks.setComment("很棒,值得分享!!");

        // site是分享此內容的網站名稱,僅在QQ空間使用
        oks.setSite("網站名稱");

        // siteUrl是分享此內容的網站地址,僅在QQ空間使用
        oks.setSiteUrl(url);

// 啟動分享GUI
        oks.show(this);

    }

 

 

 

 

 

-------------------------------------------上面是參照官方和度娘總結的shareSDK的線上安裝配置部分,下面是官方的介紹----------------------------------------------

 

 

 

 

 

 

 

 

 

下面的內容是來自官方的整合文件說明,可以結合參考

 

http://wiki.mob.com/sdk-share-android-3-0-0/

 

ShareSDK 整合文件

注:使用ShareSDK Gradle整合方式,不需要在AndroidMainfest.xml下面配置任何許可權和Activity

注意:需要先申請Mob的appkey與appsecret請點選這裡檢視

一、配置gradle

1、開啟專案根目錄的build.gradle,在buildscrip–>dependencies 模組下面新增  classpath ‘com.mob.sdk:MobSDK:2018.0319.1724’,如下所示;

 

1

2

3

4

5

6

7

8

9

10

11

buildscript {

    repositories {

         jcenter() 

    }

 

    dependencies {

        ...

        classpath "com.mob.sdk:MobSDK:2018.0319.1724"

 

    }

}

 

2、在使用到Mob產品的module下面的build.gradle檔案裡面新增引用

 

1

apply plugin: 'com.mob.sdk'

3、然後新增MobSDK方法,配置mob的key和祕鑰 (與第2步是一個gradle中;注意:MobSDK方法是配置到檔案根目錄,與android並列,不要配置到android裡面哦)

如果還沒有key的,申請Mob的appkey與appsecret請點選這裡檢視
Onekeyshare是ShareSDK的GUI介面,如果不需要,則需要新增”gui false”,因為預設是使用gui,version欄位為SDK的版本號,不設定則使用最新的版本;

 

1

2

3

4

5

6

7

MobSDK {

    appKey "d580ad56b4b5"

    appSecret "7fcae59a62342e7e2759e9e397c82bdd"

 

    ShareSDK {}

  

}

4、Gradle整合方式可以在Mob產品的module下面的build.gradle檔案裡面配置ShareSDK各個社交平臺的key資訊

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

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"

                shareByAppClient true

            }

            Facebook {

                appKey "1412473428822331"

                appSecret "a42f4f3f867dc947b9ed6020c2e93558"

                callbackUri "https://mob.com"

            }

        }

    }

  

}

其中的devInfo為來自社交平臺的應用資訊。

注:如果您沒有在AndroidManifest中設定appliaction的類名,MobSDK會將這個設定為com.mob.MobApplication,但如果您設定了,請在您自己的Application類中呼叫:

 

1

MobSDK.init(this);

並且在Manifest清單檔案中配置:tools:replace=”android:name”,如下所示:

 

1

2

3

<application

   android:name = ".MyApplication"

   tools:replace="android:name">

配置完以上資訊後同步(sync)一下程式碼就可以呼叫相關的介面了

 

三、新增程式碼

1、初始化MobSDK

如果您沒有在AndroidManifest中設定appliaction的類名,MobSDK會將這個設定為com.mob.MobApplication,但如果您設定了,請在您自己的Application類中呼叫:

 

1

MobSDK.init(this);

以初始化MobSDK。

新增配置後,即可呼叫授權、獲取資料、分享等操作,如一鍵分享的程式碼:

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

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);

}

}

四、混淆設定需要設定,不需要別設定

ShareSDK已經做了混淆處理,再次混淆會導致不可預期的錯誤,請在您的混淆指令碼中新增如下的配置,跳過對ShareSDK的混淆操作:

 

1

2

3

4

5

6

7

8

9

10

-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$*

五、可用的社交平臺

任何配置在devInfo下的社交平臺都是可用的,他們包括:

分類

平臺名稱

常用平臺

SinaWeibo(新浪微博)、Wechat(微信好友)、WechatMoments(微信朋友圈)、QQ(QQ好友)、Facebook、FacebookMessenger

其它主流平臺

TencentWeibo(騰訊微博)、QZone(QQ空間)、Renren(人人網)、Twitter、Douban(豆瓣)、Tumblr、GooglePlus(Google+)、Pinterest、Line、Instagram、Alipay(支付寶好友)、AlipayMoments(支付寶朋友動態)、Youtube、Meipai(美拍)

其它平臺

WechatFavorite(微信收藏)、KaiXin(開心網)、Email(電子郵件)、ShortMessage(簡訊)、YouDao(有道雲筆記)、Evernote(印象筆記)、LinkedIn(領英)、FourSquare、Flickr、Dropbox、VKontakte、Yixin(易信)、YixinMoments(易信朋友圈)、Mingdao(明道)、KakaoTalk、KakaoStory、WhatsApp、Pocket、Instapaper、Dingding(釘釘)、Telegram

 

六、注意事項

1. ShareSDK預設會新增OnekeyShare庫,如果您不需要這個庫,可以在ShareSDK下設定“gui false”來關閉OnekeyShare
2. MobSDK預設為ShareSDK提供最新版本的整合,如果您想鎖定某個版本,可以在ShareSDK下設定“version “某個版本””來固定使用這個版本
3. 如果使用MobSDK的模組會被其它模組依賴,請確保依賴它的模組也引入MobSDK外掛,或在此模組的gradle中新增:

 

1

2

3

repositories {

    jcenter()

}