ShareSDK实现一键分享
2016-10-09 15:49
609 查看
1.ShareSDK的介绍
Sharesdk是第三方Mob移动服务平台提供的一个一键分享的SDK;有了ShareSDK,我们集成各个平台的分享功能的开发效率明显的提高了很多。接下来,就为大家讲解一下关于ShareSDK的技术重点,在经过一天半的探索,终于还是摸出了些许门道,在此分享给各位伙伴!2.ShareSDK的使用
1.首先登陆Mob官网注册,官网地址:http://www.mob.com2.进入个人后台页面,点击ShareSDK的项目。
3.选择你要勾选的分享平台,然后进行ShareSDK的下载
4.下载完之后,在解压文件夹里有一个快速集成工具QuickIntergrater.jar
5.在点击集成工具之前,必须保证自己的java环境已经配置Ok了,然后双击,会出现如下界面:
6.在上步确定之后,会自动生成一个与 项目名相同的文件夹
7.打开文件夹,会有四个文件
8.把四个文件对应的复制到自己的工程中(在这里我强调一下,assets复制在main目录下,res覆盖工程res目录,libs覆盖libs目录,src覆盖src目录,很多资料直接粗略的说把这四个文件拷贝到工程,然而怎么个拷贝法并没有说清楚,当然拷贝方法不唯一,仅个人喜好)
9.配置清单文件manifest
权限配置:
<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.MANAGE_ACCOUNTS"/> <uses-permission android:name="android.permission.GET_ACCOUNTS"/> <!-- 蓝牙分享所需的权限 --> <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />各平台的回调activity注册:
<activity android:name="com.mob.tools.MobUIShell" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configChanges="keyboardHidden|orientation|screenSize" android:screenOrientation="portrait" android:windowSoftInputMode="stateHidden|adjustResize" > <intent-filter> <data android:scheme="tencent1105665723" /> <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> </activity> <!--微信分享回调 --> <activity android:name="cn.sharesdk.onekeyshare.wxapi.WXEntryActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:screenOrientation="portrait" />这里注意一下,你在你自己的工程里用了什么平台,就要对其注册回调activity
10.打开ShareSDK.xml,对其中的app id 和app secret进行分平台配置
<ShareSDK AppKey = "17b711d0d5064"/> <!-- 修改成你在sharesdk后台注册的应用的appkey"--> <!-- ShareByAppClient标识是否使用微博客户端分享,默认是false --> <SinaWeibo Id="1" SortId="1" AppKey="2196164667" AppSecret="288681da98ec0fcc75eabf3eb2b34f43" RedirectUrl="http://www.baidu.com" ShareByAppClient="true" Enable="true" /> <QQ Id="2" SortId="2" AppId="1105665723" AppKey="YB7oxWLlbNCQKmSd" ShareByAppClient="true" Enable="true" /> <!-- Wechat微信和WechatMoments微信朋友圈的appid是一样的; 注意:开发者不能用我们这两个平台的appid,否则分享不了 微信测试的时候,微信测试需要先签名打包出apk, sample测试微信,要先签名打包,keystore在sample项目中,密码123456 BypassApproval是绕过审核的标记,设置为true后AppId将被忽略,故不经过 审核的应用也可以执行分享,但是仅限于分享文字和图片,不能分享其他类型, 默认值为false。此外,微信收藏不支持此字段。 --> <Wechat Id="3" SortId="3" AppId="wxdb0f7a71c883b423" AppSecret="daecf556b42463ce11c2421f9570cac7" BypassApproval="true" Enable="true" /> <WechatMoments Id="4" SortId="4" AppId="wxdb0f7a71c883b423" BypassApproval="true" Enable="true" /> <WechatFavorite Id="5" SortId="5" AppId="wxdb0f7a71c883b423" Enable="true" />
这里就必须到各个平台的开发者平台注册,并创建自己项目应用,并复制到ShareSDK.xml中,这里我列举几个常用的而开发者平台网址:
新浪微博 http://open.weibo.com 腾讯微博 http://dev.t.qq.com QQ空间 http://connect.qq.com/intro/login/ 微信好友 http://open.weixin.qq.com Facebook https://developers.facebook.com Twitter https://dev.twitter.com 人人网 http://dev.renren.com 开心网 http://open.kaixin001.com 搜狐微博 http://open.t.sohu.com 网易微博 http://open.t.163.com 豆瓣 http://developers.douban.com[/code] 11.最后就是撸我们的分享代码了public class MainActivity extends AppCompatActivity { Button shareBtn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ShareSDK.initSDK(this); setContentView(R.layout.activity_main); shareBtn = (Button) findViewById(R.id.shareBtn); shareBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { OnekeyShare oks = new OnekeyShare(); oks.setTitle("趣分享"); oks.setText("我为技术带盐,我骄傲,我自豪"); oks.setImageUrl("http://7sby7r.com1.z0.glb.clouddn.com/CYSJ_02.jpg"); oks.setTitleUrl("http://wwww.baidu.com"); oks.show(MainActivity.this); } }); } @Override protected void onDestroy() { super.onDestroy(); ShareSDK.stopSDK(this); } }在这里,我们的的一键分享功能就大功告成了,第三方万岁!!!3.ShareSDK使用重点
虽说第三方方便,快捷,强大的帮助了开发者,但是其中也有很多坑的!卧槽,坑死爹了,官方文档写的什么玩意儿呀,这里我将把我自己遇到的坑提出来,方便以后大家不填坑。
1.集成新浪微博分享时,创建的应用必须要与自己的工程名一致。
2.在清单文件中的qq配置要加上自己的腾讯应用id<intent-filter> <data android:scheme="tencent1105665723" /> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.BROWSABLE" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter>3.在MaiinActivity中,记住最后要结束ShareSDK,不关闭会蹦出不知名的错误,加上为好。@Override protected void onDestroy() { super.onDestroy(); ShareSDK.stopSDK(this); }4.对OneKeyShare类的了解
5.对于微信分享集成又稍微繁琐点,它创建应用时要进行应用签名,官方提供了微信签名工具,这里在签名生成应用签名之前,必须提前把工程运行一次,这样工具才能检测到你自己的应用包名。如果是第一次创建微信应用的话,审核比较坑,说让你等七天,我也是醉了。所以,微信这块的app id 和app secret,我无法得到,只能做一些绕过审核的简单分享,仅支持图片和文字。
好了,就说到这里吧,然后我把自己的探索成果晒晒吧:
好了,demo链接地址:http://download.csdn.net/detail/zhangxing52077/9648892
如果您觉得我写得比较好,比较全面,请打赏一下呗,谢谢哈
相关文章推荐
- 【Android进阶】使用第三方平台ShareSDK实现新浪微博的一键分享功能
- 【Android进阶】使用第三方平台 ShareSDK 实现新浪微博的一键分享功能
- Android studio下使用ShareSDK实现一键分享
- 【Android进阶】使用第三方平台 ShareSDK 实现新浪微博的一键分享功能
- ShareSDK实现一键分享
- work_weipa_使用shareSDK实现一键分享(QQ好友和空间、微信好友和朋友圈、新浪微博)
- Unity实现众多平台一键社会化分享(ShareSDK)
- Android实战——ShareSDk的使用,实现一键分享微信好友、朋友圈、QQ
- Android实战——ShareSDk的使用,实现一键分享微信好友、朋友圈、QQ
- 使用ShareSDK实现新浪微博的一键分享功能
- 【Android进阶】使用第三方平台 ShareSDK 实现新浪微博的一键分享功能
- 【第三方SDK】使用ShareSDK实现新浪微博的一键分享功能
- IOS项目集成ShareSDK实现第三方登录、分享、关注等功能。
- 微博一键分享主要通过对指定 URL 添加各种参数来实现;
- IOS项目集成ShareSDK实现第三方登录、分享、关注等功能。
- IOS项目集成ShareSDK实现第三方登录、分享、关注等功能。
- IOS项目集成ShareSDK实现第三方登录、分享、关注等功能。
- iOS 项目 ShareSDK 实现三方登陆 分享
- 通过ShareSDK实现分享功能
- 使用ShareSDK,实现快捷分享