本項目來自菜鳥窩,有興趣者點擊http://www.cniao5.com/course/
項目已經(jīng)做完,
https://github.com/15829238397/CN5E-shop
仿京東商城系列0------項目簡介
仿京東商城系列1------fragmentTabHost實現(xiàn)底部導航欄
仿京東商城系列2------自定義toolbar
仿京東商城系列3------封裝Okhttp
仿京東商城系列4------輪播廣告條
仿京東商城系列5------商品推薦欄
仿京東商城系列6------下拉刷新上拉加載的商品列表
仿京東商城系列7------商品分類頁面
仿京東商城系列8------自定義的數(shù)量控制器
仿京東商城系列9------購物車數(shù)據(jù)存儲器實現(xiàn)
仿京東商城系列10------添加購物車,管理購物車功能實現(xiàn)
仿京東商城系列11------商品排序功能以及布局切換實現(xiàn)(Tablayout)
仿京東商城系列12------商品詳細信息展示(nativie與html交互)
仿京東商城系列13------商品分享(shareSDK)
仿京東商城系列14------用戶登錄以及app登錄攔截
仿京東長城系列15------用戶注冊,SMSSDK集成
仿京東商城系列16------支付SDK集成
仿京東商城系列17------支付功能實現(xiàn)
仿京東商城系列18------xml文件讀?。ǖ刂愤x擇器)
仿京東商城系列19------九宮格訂單展示
仿京東商城系列20------終章
前言
本次將為大家介紹如何向我們的商品詳情頁面添加分享商品功能。先上效果圖:

sharesdk介紹
- 產(chǎn)品概述
ShareSDK是一種社會化分享組件,為iOS、Android、WP8 的APP提供社會化功能,集成了一些常用的類庫和接口,縮短開發(fā)者的開發(fā)時間,還有社會化統(tǒng)計分析管理后臺。
- 主要功能

- 快速集成
一、獲取ShareSDK
首先,您需要到ShareSDK官方網(wǎng)站注冊并且創(chuàng)建應用,獲得ShareSDK的Appkey 可以點擊這里參考
然后,到SDK的下載頁面下載SDK的壓縮包,解壓以后可以得到如下圖的目錄結構:

ShareSDK在“ShareSDK for Android”目錄下,此目錄中的“Libs”包含“MainLibs”和“OnekeyShare” 分別是ShareSDK的核心庫和“快捷分享”的源碼庫,說明文檔也在“ShareSDK for Android”目錄下,供開發(fā)者開發(fā)時查閱。 “ShareSDK for Android ApiDoc”包含集成API。
二、導入ShareSDK
執(zhí)行“ShareSDK for Android”目錄中的“QuickIntegrater.jar”。如下圖輸入輸入項目名稱、包名,并勾選所要集成的社交平臺:

點擊“確定”,程序會自動搜集集成SDK所需要的jar和資源。完成以后可以通過復制目標目錄中的文件到您項目中覆蓋
三、配置Android Manifest.xml
不同的集成度需要在AndroidManifest.xml中添加的內容不一樣。但是首先您需要添加下面的權限列表:
<!-- 添加必要的權限 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<!-- 以MobApplication作為項目Application -->
<application
android:name="com.mob.MobApplication">
<!-- 其它的activity -->
<!-- ShareSDK的activity -->
<activity
android:name="com.mob.tools.MobUIShell"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="stateHidden|adjustResize" >
<intent-filter>
<data android:scheme="tencent100371282" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<!-- 調用新浪原生SDK,需要注冊的回調activity -->
<intent-filter>
<action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<!--集成line客戶端登錄授權,需要添如下格式的過濾器-->
<intent-filter>
<data android:scheme="line.1477692153" />
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<!-- 填寫您從Mob開發(fā)者后臺中得到的Appkey和AppSecret -->
<meta-data android:name="Mob-AppKey" android:value="您的AppKey"/>
<meta-data android:name="Mob-AppSecret" android:value="您的AppSecret"/>
</application>
如果您的項目集微信或者微信朋友圈,請查看AndroidManifest.xml配置文件里的package路徑,需要在package目錄下創(chuàng)建wxapi目錄再放置WXEntryActivity。 沒有此activity在微信分享后回調會檢查是否有此activity,沒有將會報錯。
<activity
android:name=".wxapi.WXEntryActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:screenOrientation="portrait" />
而如果您的項目集易信的兩個平臺,請查看AndroidManifest.xml配置文件里的package路徑需要在package目錄下創(chuàng)建yxapi目錄在放置回調Activity:
<activity
android:name=".yxapi.YXEntryActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:screenOrientation="portrait" />
而如果您的項目集支付寶的兩個平臺,請查看AndroidManifest.xml配置文件里的package路徑需要在package目錄下創(chuàng)建apshare目錄在放置回調Activity:
<!-- 支付寶分享回調 -->
<activity
android:name=".apshare.ShareEntryActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"/>
而如果您的項目集釘釘?shù)钠脚_,請查看AndroidManifest.xml配置文件里的package路徑需要在package目錄下創(chuàng)建ddshare目錄在放置回調Activity:
<!-釘釘分享回調-->
<activity
android:name=".ddshare.DDShareActivity"
android:launchMode="singleInstance"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<category android:name="android.intent.category.DEFAULT"></category>
</intent-filter>
</activity>
這四個類的路徑是需要根據(jù)您項目的包名來確定,如果路徑錯誤,您將收不到操作回調,因此ShareSDK也無法給予您操作回調。為了避免出錯,請使用相對路徑的方式,直接復制上面的代碼到您的AndroidManifest.xml中即可。
四、添加代碼
添加配置以后,就可以調用授權、獲取資料、分享等操作了:
private void showShare() {
OnekeyShare oks = new OnekeyShare();
//關閉sso授權
oks.disableSSOWhenAuthorize();
// 分享時Notification的圖標和文字 2.5.9以后的版本不 調用此方法
//oks.setNotification(R.drawable.ic_launcher, getString(R.string.app_name));
// title標題,印象筆記、郵箱、信息、微信、人人網(wǎng)和QQ空間使用
oks.setTitle(getString(R.string.share));
// titleUrl是標題的網(wǎng)絡鏈接,僅在人人網(wǎng)和QQ空間使用
oks.setTitleUrl("http://sharesdk.cn");
// text是分享文本,所有平臺都需要這個字段
oks.setText("我是分享文本");
// imagePath是圖片的本地路徑,Linked-In以外的平臺都支持此參數(shù)
oks.setImagePath("/sdcard/test.jpg");//確保SDcard下面存在此張圖片
// url僅在微信(包括好友和朋友圈)中使用
oks.setUrl("http://sharesdk.cn");
// comment是我對這條分享的評論,僅在人人網(wǎng)和QQ空間使用
oks.setComment("我是測試評論文本");
// site是分享此內容的網(wǎng)站名稱,僅在QQ空間使用
oks.setSite(getString(R.string.app_name));
// siteUrl是分享此內容的網(wǎng)站地址,僅在QQ空間使用
oks.setSiteUrl("http://sharesdk.cn");
// 啟動分享GUI
oks.show(this);
}
五、混淆設置
只需要配置如下混淆處理,其他的jar包及onekeyshare代碼不需要特殊處理;
-keep class cn.sharesdk.**{*;}
-keep class com.sina.**{*;}
-keep class **.R$* {*;}
-keep class **.R{*;}
-keep class com.mob.**{*;}
-dontwarn com.mob.**
-dontwarn cn.sharesdk.**
-dontwarn **.R$*
歡迎大家查看官方文檔哪里有詳細的地址
- 我的集成
1.新建一個library名為ShareSDK。
2.將下載成功的文件按結構對應復制到新建的ShareSDK中。(可以將manifest中的聲明寫入app的manifest中)
3.給app添加依賴ShareSDK 。
繼承完畢即可使用ShareSDK。詳細代碼請點擊github地址進行查看。