仿京東商城系列13------商品分享(shareSDK)

本項目來自菜鳥窩,有興趣者點擊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------終章


前言

本次將為大家介紹如何向我們的商品詳情頁面添加分享商品功能。先上效果圖:

商品分享.gif

sharesdk介紹

  • 產(chǎn)品概述

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

  • 主要功能
image.png

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”。如下圖輸入輸入項目名稱、包名,并勾選所要集成的社交平臺:


詳細文檔2

點擊“確定”,程序會自動搜集集成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地址進行查看。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容