Android app快速整合Mob shareSDK分享到微信和QQ
Android app整合Mob shareSDK分享到微信和QQ
線上安裝方法介紹
注意需要用到的appKey和appSecret 請自行到http://www.mob.com官網申請,這裡不介紹申請過程了
進入如下下載地址,準備下載shareSDK(其實關鍵是在最終下載過程中會彈出線上安裝的操作提示,這才是我們需要的部分)
如下綠色箭頭所示:依次點選 下載中心--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() } |