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

2017-08-24  本文已影响306人  小庄bb

本项目来自菜鸟窝,有兴趣者点击http://www.cniao5.com/course/

项目已经做完,
https://github.com/15829238397/CN5E-shop


仿京东商城系列0------项目简介
仿京东商城系列1------fragmentTabHost实现底部导航栏
仿京东商城系列2------自定义toolbar
仿京东商城系列3------封装Okhttp
仿京东商城系列4------轮播广告条
仿京东商城系列5------商品推荐栏
仿京东商城系列6------下拉刷新上拉加载的商品列表
仿京东商城系列7------商品分类页面
仿京东商城系列8------自定义的数量控制器
仿京东商城系列9------购物车数据存储器实现
仿京东商城系列10------添加购物车,管理购物车功能实现
仿京东商城系列11------商品排序功能以及布局切换实现(Tablayout)
仿京东商城系列12------商品详细信息展示(nativie与html交互)
仿京东商城系列13------商品分享(shareSDK)
仿京东商城系列14------用户登录以及app登录拦截
仿京东长城系列15------用户注册,SMSSDK集成
仿京东商城系列16------支付SDK集成
仿京东商城系列17------支付功能实现
仿京东商城系列18------xml文件读取(地址选择器)
仿京东商城系列19------九宫格订单展示
仿京东商城系列20------终章


前言

本次将为大家介绍如何向我们的商品详情页面添加分享商品功能。先上效果图:

商品分享.gif

sharesdk介绍

ShareSDK是一种社会化分享组件,为iOS、Android、WP8 的APP提供社会化功能,集成了一些常用的类库和接口,缩短开发者的开发时间,还有社会化统计分析管理后台。

image.png

ShareSDK在“ShareSDK for Android”目录下,此目录中的“Libs”包含“MainLibs”和“OnekeyShare” 分别是ShareSDK的核心库和“快捷分享”的源码库,说明文档也在“ShareSDK for Android”目录下,供开发者开发时查阅。 “ShareSDK for Android ApiDoc”包含集成API。
二、导入ShareSDK
执行“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开发者后台中得到的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目录下创建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目录下创建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目录下创建apshare目录在放置回调Activity:

<!-- 支付宝分享回调 -->
<activity
    android:name=".apshare.ShareEntryActivity"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
    android:configChanges="keyboardHidden|orientation|screenSize"
    android:exported="true"/>

而如果您的项目集钉钉的平台,请查看AndroidManifest.xml配置文件里的package路径需要在package目录下创建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>

这四个类的路径是需要根据您项目的包名来确定,如果路径错误,您将收不到操作回调,因此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标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用
     oks.setTitle(getString(R.string.share));
     // titleUrl是标题的网络链接,仅在人人网和QQ空间使用
     oks.setTitleUrl("http://sharesdk.cn");
     // text是分享文本,所有平台都需要这个字段
     oks.setText("我是分享文本");
     // imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
     oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片
     // url仅在微信(包括好友和朋友圈)中使用
     oks.setUrl("http://sharesdk.cn");
     // comment是我对这条分享的评论,仅在人人网和QQ空间使用
     oks.setComment("我是测试评论文本");
     // site是分享此内容的网站名称,仅在QQ空间使用
     oks.setSite(getString(R.string.app_name));
     // siteUrl是分享此内容的网站地址,仅在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$*

欢迎大家查看官方文档哪里有详细的地址


继承完毕即可使用ShareSDK。详细代码请点击github地址进行查看。

上一篇 下一篇

猜你喜欢

热点阅读