ShareSDK集成第三方登录和分享的步骤

来源:互联网 发布:帝国cms仿砍柴网 编辑:程序博客网 时间:2024/05/16 05:27

转自:http://my.oschina.net/u/1024921/blog/170588

之前用过这个几次了,而每次都没有记录一下具体的步骤,这次就写一下吧

1、去ShareSDK下载官方的SDK

2、现在他们的服务特别人性化,解压SDK之后会发现有一个"双击此批处理文件可以生成一个快速集成ShareSDK的目录.bat"这样一个文件,打开之后按照提示输入你的应用包名,他就会给你生成一个目录,你直接拷贝到你的项目中就OK了,拷贝进来之后会报错,其实就是R文件报错,在导入R文件包名的时候选择你自己的包名,然后就完事了,clean一下你的工程。

3、在assets目录下有一个ShareSDK.conf的文件,打开,找到你要集成的平台名字,然后APPKEY就不用说了,这里说一下 AppSecret 这个是新浪特有的

SortId="1"   这个是集成的平台的独有ID,int类型的,数字越小越靠前

ShortLinkConversationEnable用来设置此平台是否开启转短链的功能,布尔值,不设置则默认为
    true,此字段影响到回流统计,建议保留默认配置

下面是在代码中进行集成

1.首先在你的项目入口的activity的oncreat()方法中,加上ShareSDK.initSDK(this);这句代码是初始化ShareSDK的
2、如果需要统计应用被打开次数,可以在出口activity中的onDestroy()方法的第一行中加入ShareSDK.stopSDK(this);

这行代码会结束Share SDK的统计功能并释放资源。

    InitSDK是可以重复调用的,其实Share SDK建议在您不确定的时候调用这个方法,来保证Share SDK被正确初始化。而stopSDK一旦调用了,就必须重新调用InitSDK才能使用Share SDK的功能,否则会出现空指针异常。

到这里,基本的准备工作就已经完成了。下面是具体的集成代码了,这里以新浪微博和微信为例:

1、首先,说一下微信,腾讯的东西真TM不爽,微信这个玩意,非要搞什么签名和包名捆绑,一系列麻烦的东西,下面说一下

    1)进入微信开放平台添加Android平台的信息。这些信息包括:下载地址、应用签名和包名。

    

上图中的下载地址不可以是应用apk文件的直接地址,而报名则是您应用的包名。至于应用签名,事实上您应用签名文件(keystore文件)的MD5值。有多种计算方式:

(1)使用微信提供的签名计算工具,来签名: 如果您希望通过这个方法来计算签名,则需要下载微信的签名计算工具。此处需要注意的是下载回来的文件一定是“apk”的,如果您下载回来的文件是zip或者后缀名,请修改其后缀名为“apk”,并复制到您的手机上安装。 然后为您的应用导出一个签过名的apk。请注意,这个签名应该是您将来发布应用时的签名,也就是所谓的“正式包签名”。这里需要解释一下,微信并不要求具体使用的签名文件的性质,但是修改签名经常会导致问题,所以为了避免不必要的麻烦,Share SDK强烈建议您使用正式包的签名。 安装导出的apk文件,然后运行微信的签名计算工具。并在其中输入您应用的包名,微信会自动计算您应用所签keystore的MD5:转至微信开放平台,将计算好的结果填写到其中并保存。

个人比较推荐这个方法,用eclipse的那种方法会因为eclipse的bug报错


修改授权页标题栏:

在清单文件中修改一下之前插入的授权页activity

主要是修改下面的meta-data

1<activity
2            android:name="cn.sharesdk.framework.ShareSDKUIShell"
3            android:configChanges="keyboardHidden|orientation"
4            android:screenOrientation="portrait"
5            android:theme="@android:style/Theme.Translucent.NoTitleBar"
6            android:windowSoftInputMode="stateHidden|adjustResize" >
7              
8            <meta-data android:name="Adapter" android:value="com.example.share.MyAdapter" />
9         </activity>
然后创建MyAdapter这个类,继承cn.sharesdk.framework. authorize.AuthorizeAdapter,

然后重写onCreat方法等。重新定义界面

这里有几个方法会用到:

还有getPlatformName()-获取是哪个平台的授权页,getWebBody(),分享的内容


0 0