Android ShareSDK 分享经验
ShareSDK个人总结:
个人感觉shareSDK分享平台挺不错的,研究了一下,下面分享一些实现过程中遇到的问题,希望后来者能够避免。
SDK下载地址
有文档,有视频教程
分享实现过程:普通的微博分享例如典型的新浪微博
ShareSDK分享分为单独平台分享和一键分享
一般情况使用一键分享比较简单快捷
实现一键分享要求引入这些文件
如何引入:
下载shareSDK官方的SDK解压
里面包含这四个文件夹
ShareSDK forAndroid 里面包含一个wins 下可执行程序
执行此程序可以帮助你生成适合你项目使用的shareSDK
如图,根据提示填写信息,最重要的是包名不要写错。
这样我们需要的ShareSDKDemo就生成好了
里面的文件直接覆盖项目中的文件即可
说一下在ShareSDKDemo文件夹下assets目录下有一个ShareSDK.xml
里面可以设置
SortId="1"这个是集成的平台的独有ID,int类型的,数字越小越靠前
ShortLinkConversationEnable用来设置此平台是否开启转短链的功能,
布尔值,不设置则默认为 true,此字段影响到回流统计,建议保留默认配置
在代码集成过程中:
需要注意:在activity入口oncreat()方法中需要加上ShareSDK.initSDK(this);
此句是在当前活动的activity中初始化ShareSDK的分享组件,
同时在activity中的onDestroy()方法中也要加入ShareSDK.stopSDK(this);
这行代码会结束Share SDK的统计功能并释放资源
要更改的文件就是
AndroidManifest.xml 这个说明文件
加上必要的说明
这块主要就是权限的说明:
<uses-permissionandroid:name="android.permission.INTERNET" />
<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permissionandroid:name="android.permission.READ_PHONE_STATE" />
<uses-permissionandroid:name="android.permission.MANAGE_ACCOUNTS"/>
<uses-permissionandroid:name="android.permission.GET_ACCOUNTS"/>
<!—此处的activity 主要是第三方授权的时候会去调用-->
<activity
android:name="cn.sharesdk.framework.ShareSDKUIShell"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" >
<!--
Adapter表示一个继承自cn.sharesdk.framework.authorize.AuthorizeAdapter的类,
这个类可以监听到页面的生命周期,也可以获取授权页面的各种UI控件。
开发者可以通过继承AuthorizeAdapter,重写其方法,并获取各种UI来自定义这个页面的行为。
-->
<meta-data android:name="Adapter" android:value="cn.sharesdk.demo.MyAdapter" />
</activity>
微信分享
微信分享相对于新浪的等微博分享,还有些不同,微信是基于微信客户端的一种分享方式。而且对于android 应用程序想要实现微信分享需要对,生成的apk包签名,并且在微信的开放平台上注册你的移动应用
下面说一下注册过程:
应用签名 可以这样获得通过Eclipe工具生成
右键工程-》android tools –》export Signed Application..
如果第一次导出需要建立一个新的keystore,第一生成kestore时签名的MD5看不到,生成keystore之后将刚才的过程在执行一遍,不要新建keystore,选着刚刚生成的输入密码,
会生成一个MD5值,这个值就是签名的MD5也就是创建微信应用时需要的应用签名(大写转小写,去掉:号)
包名就是AndroidManifest.xml 中
Package 对应的包名
微信的应用提交审核一般需要一天左右的时间,审核通过就可以测试了,如果测试过程中打包的过程有重新生成签名的时候,需要把新的新的签名,放到微信应用中(即必须保持应用签名和开放平台的签名一直)。
注意事项:
禁用SSO客户端:
ShareSdk 提供是否禁用客户端,前提是微信,易信,必须要客户端的分享平台除外。
以新浪微博为例:
在shareSDK.xml中
<SinaWeibo
Id="1"
SortId="1"
AppKey="337910282"
AppSecret="a0304da6129b8af158f233138daf8dc6"
RedirectUrl=""
ShareByAppClient="false"
/>
ID 表示当前分享图标的排列顺序,ID越大位置越靠后
AppKey平台注册的时候生成的ID
AppSecret 平台注册的时候生成的 Secret
RedirectUrl 回调函数的调用地址
ShareByAppClient检测到客户端时候启用(如果在单独授权的时候需要设置
OneKeyShare对象的
oks.disableSSOWhenAuthorize();
或者在Platform 创建出对象之后,直接设置器属性SSOSetting(true/false);
)
发布评论