本項(xiàng)目來自菜鳥窩真友,有興趣者點(diǎn)擊http://www.cniao5.com/course/
項(xiàng)目已經(jīng)做完黄痪,
https://github.com/15829238397/CN5E-shop
仿京東商城系列0------項(xiàng)目簡介
仿京東商城系列1------fragmentTabHost實(shí)現(xiàn)底部導(dǎo)航欄
仿京東商城系列2------自定義toolbar
仿京東商城系列3------封裝Okhttp
仿京東商城系列4------輪播廣告條
仿京東商城系列5------商品推薦欄
仿京東商城系列6------下拉刷新上拉加載的商品列表
仿京東商城系列7------商品分類頁面
仿京東商城系列8------自定義的數(shù)量控制器
仿京東商城系列9------購物車數(shù)據(jù)存儲器實(shí)現(xiàn)
仿京東商城系列10------添加購物車,管理購物車功能實(shí)現(xiàn)
仿京東商城系列11------商品排序功能以及布局切換實(shí)現(xiàn)(Tablayout)
仿京東商城系列12------商品詳細(xì)信息展示(nativie與html交互)
仿京東商城系列13------商品分享(shareSDK)
仿京東商城系列14------用戶登錄以及app登錄攔截
仿京東長城系列15------用戶注冊盔然,SMSSDK集成
仿京東商城系列16------支付SDK集成
仿京東商城系列17------支付功能實(shí)現(xiàn)
仿京東商城系列18------xml文件讀任Υ颉(地址選擇器)
仿京東商城系列19------九宮格訂單展示
仿京東商城系列20------終章
前言
本次將為大家介紹如何向我們的商品詳情頁面添加分享商品功能是嗜。先上效果圖:
sharesdk介紹
- 產(chǎn)品概述
ShareSDK是一種社會化分享組件,為iOS挺尾、Android鹅搪、WP8 的APP提供社會化功能,集成了一些常用的類庫和接口遭铺,縮短開發(fā)者的開發(fā)時(shí)間丽柿,還有社會化統(tǒng)計(jì)分析管理后臺。
- 主要功能
- 快速集成
一魂挂、獲取ShareSDK
首先甫题,您需要到ShareSDK官方網(wǎng)站注冊并且創(chuàng)建應(yīng)用,獲得ShareSDK的Appkey 可以點(diǎn)擊這里參考
然后锰蓬,到SDK的下載頁面下載SDK的壓縮包幔睬,解壓以后可以得到如下圖的目錄結(jié)構(gòu):
ShareSDK在“ShareSDK for Android”目錄下,此目錄中的“Libs”包含“MainLibs”和“OnekeyShare” 分別是ShareSDK的核心庫和“快捷分享”的源碼庫芹扭,說明文檔也在“ShareSDK for Android”目錄下麻顶,供開發(fā)者開發(fā)時(shí)查閱。 “ShareSDK for Android ApiDoc”包含集成API舱卡。
二辅肾、導(dǎo)入ShareSDK
執(zhí)行“ShareSDK for Android”目錄中的“QuickIntegrater.jar”。如下圖輸入輸入項(xiàng)目名稱轮锥、包名矫钓,并勾選所要集成的社交平臺:
點(diǎn)擊“確定”,程序會自動(dòng)搜集集成SDK所需要的jar和資源舍杜。完成以后可以通過復(fù)制目標(biāo)目錄中的文件到您項(xiàng)目中覆蓋
三新娜、配置Android Manifest.xml
不同的集成度需要在AndroidManifest.xml中添加的內(nèi)容不一樣。但是首先您需要添加下面的權(quán)限列表:
<!-- 添加必要的權(quán)限 -->
<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作為項(xiàng)目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>
<!-- 調(diào)用新浪原生SDK既绩,需要注冊的回調(diào)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客戶端登錄授權(quán)概龄,需要添如下格式的過濾器-->
<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>
如果您的項(xiàng)目集微信或者微信朋友圈,請查看AndroidManifest.xml配置文件里的package路徑,需要在package目錄下創(chuàng)建wxapi目錄再放置WXEntryActivity饲握。 沒有此activity在微信分享后回調(diào)會檢查是否有此activity,沒有將會報(bào)錯(cuò)私杜。
<activity
android:name=".wxapi.WXEntryActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:screenOrientation="portrait" />
而如果您的項(xiàng)目集易信的兩個(gè)平臺,請查看AndroidManifest.xml配置文件里的package路徑需要在package目錄下創(chuàng)建yxapi目錄在放置回調(diào)Activity:
<activity
android:name=".yxapi.YXEntryActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:screenOrientation="portrait" />
而如果您的項(xiàng)目集支付寶的兩個(gè)平臺救欧,請查看AndroidManifest.xml配置文件里的package路徑需要在package目錄下創(chuàng)建apshare目錄在放置回調(diào)Activity:
<!-- 支付寶分享回調(diào) -->
<activity
android:name=".apshare.ShareEntryActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"/>
而如果您的項(xiàng)目集釘釘?shù)钠脚_衰粹,請查看AndroidManifest.xml配置文件里的package路徑需要在package目錄下創(chuàng)建ddshare目錄在放置回調(diào)Activity:
<!-釘釘分享回調(diào)-->
<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>
這四個(gè)類的路徑是需要根據(jù)您項(xiàng)目的包名來確定,如果路徑錯(cuò)誤笆怠,您將收不到操作回調(diào)铝耻,因此ShareSDK也無法給予您操作回調(diào)。為了避免出錯(cuò)蹬刷,請使用相對路徑的方式田篇,直接復(fù)制上面的代碼到您的AndroidManifest.xml中即可替废。
四、添加代碼
添加配置以后泊柬,就可以調(diào)用授權(quán)椎镣、獲取資料、分享等操作了:
private void showShare() {
OnekeyShare oks = new OnekeyShare();
//關(guān)閉sso授權(quán)
oks.disableSSOWhenAuthorize();
// 分享時(shí)Notification的圖標(biāo)和文字 2.5.9以后的版本不 調(diào)用此方法
//oks.setNotification(R.drawable.ic_launcher, getString(R.string.app_name));
// title標(biāo)題兽赁,印象筆記状答、郵箱、信息刀崖、微信惊科、人人網(wǎng)和QQ空間使用
oks.setTitle(getString(R.string.share));
// titleUrl是標(biāo)題的網(wǎng)絡(luò)鏈接,僅在人人網(wǎng)和QQ空間使用
oks.setTitleUrl("http://sharesdk.cn");
// text是分享文本亮钦,所有平臺都需要這個(gè)字段
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是分享此內(nèi)容的網(wǎng)站名稱框产,僅在QQ空間使用
oks.setSite(getString(R.string.app_name));
// siteUrl是分享此內(nèi)容的網(wǎng)站地址,僅在QQ空間使用
oks.setSiteUrl("http://sharesdk.cn");
// 啟動(dòng)分享GUI
oks.show(this);
}
五题翰、混淆設(shè)置
只需要配置如下混淆處理映穗,其他的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$*
歡迎大家查看官方文檔哪里有詳細(xì)的地址
- 我的集成
1.新建一個(gè)library名為ShareSDK。
2.將下載成功的文件按結(jié)構(gòu)對應(yīng)復(fù)制到新建的ShareSDK中蚁滋。(可以將manifest中的聲明寫入app的manifest中)
3.給app添加依賴ShareSDK 宿接。
繼承完畢即可使用ShareSDK。詳細(xì)代碼請點(diǎn)擊github地址進(jìn)行查看辕录。