现在的位置: 首页 > 综合 > 正文

Android通过ShareSDK实现新浪微博分享

2017年11月17日 ⁄ 综合 ⁄ 共 3596字 ⁄ 字号 评论关闭

ShareSDK社会化分享的官方说明:是中国最大的APP内分享服务提供商,ShareSDK社会化分享,全面支持微信,微博,QQ空间,来往,易信,Facebook等国内外40个平台。

ShareSDK官方网站(SDK下载及开发文档):http://share.mob.com

 

好吧,现在就参考ShareSDKAndroid文档进行进行集成和功能实现。

第一步:下载ShareSDK

http://share.sharesdk.cn/Download

 

第二步:集成ShareSDK

集成方法有3个:

1.     使用官方快速集成ShareSDK的工具

2.     项目引用

3.     直接复制jar包到目标项目libs目录

 

第一种涉及系统差异问题(windowsmac的集成方法不一样),现在直接用第3种方法吧,以下是详细官方说明:

直接复制jar和资源的方式,可以参考ShareSDKSample项目。

使用复制jar的方法,需要除了复制MainLibs/libs中的jar外,还需要复制MainLibs/res中图片和strings,否则会出现授权时找不到资源的问题。而且如果您的项目也集成了快捷分享,还需要复制OneKeyShare/src中的源码、OneKeyShare/res中的资源,如果你的项目里没有android-support-v4jar需要把OneKeyShare/libs下的android-support-v4jar到您的项目中。

 

第三步:添加应用信息

这个也有3种方法:

1.通过“assets/ShareSDK.xml”文件来配置

 

2. 通过代码配置“setPlatformDevInfo(String, HashMap<String,Object>)”方法

3. ShareSDK应用管理后台中配置。

 

现在用第3种方法:登录ShareSDK管理后台,选择添加新应用,输入相关信息确定后几得到key。在我们的应用中只要调用ShareSDK.init(context,你的应用在sharesdk注册时返回的AppKey)方法进行初始化(待会再讲),如果以后更改了注册信息可以直接从网上更改,而不用重新发布新版本进行更新。(优先级最高)

 

第四步:配置AndroidManifest.xml

不同的集成度需要在AndroidManifest.xml中添加的内容不一样。但是首先您需要添加下面的权限列表:

<uses-permissionandroid:name="android.permission.GET_TASKS"
/>

<uses-permissionandroid:name="android.permission.INTERNET"
/>

<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"
/>

<uses-permissionandroid: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"/>

这些权限将允许您的项目和ShareSDK判断当前应用是否前置、获取连接网络的权限、获取您的设备网络状态的权限、实现https安全连接的权限、读取手机设备状态的权限和保存必要配置的权限。一般来说,即便不集成ShareSDK,大部分的项目也都会注册申请这些权限。

其次,为了授权操作可以顺利完成,需要在application下注册下面的Activity

ShareSDKUIShell的路径是固定的,一定要在“cn.sharesdk.framework”下,因为它在Share-Core中。

<activity

  android:name="cn.sharesdk.framework.ShareSDKUIShell"

  android:theme="@android:style/Theme.Translucent.NoTitleBar"

  android:configChanges="keyboardHidden|orientation|screenSize"

  android:screenOrientation="portrait"

  android:windowSoftInputMode="stateHidden|adjustResize"
/>

 

 

 

okShareSDK已经集成到我们的项目,下面我们在应用中调用微博分享,先上代码再解释(其它分享请查看官方文档,基本是一样的,微信步骤会多点):

public void share(){

HashMap<String,Object>hashMap = new HashMap<String, Object>();

      hashMap.put("Id","1");//自定义字段,整型,用于您项目中对此平台的识别符

       hashMap.put("SortId","1");//"此平台在您分享列表中的位置,整型,数值越大越靠后"

       hashMap.put("AppKey","171970****");//填写您在新浪微博上注册到的AppKey

      hashMap.put("AppSecret","353403954b046ed0e378063c26e*****");

      hashMap.put("RedirectUrl","http://www.***.com");//填写您在新浪微博上注册的RedirectUrl

      hashMap.put("ShareByAppClient","true");//是否使用客户端进行分享

      hashMap.put("Enable","true");//布尔值,标记此平台是否有效

      ShareSDK.setPlatformDevInfo(SinaWeibo.NAME,hashMap);

ShareParamssp = new ShareParams();

sp.setText(“测试分享的文本”);

sp.setImagePath(/mnt/sdcard/测试分享的图片.jpg);

 

Platformweibo = ShareSDK.getPlatform(context,
TencentWeibo.
NAME);

weibo.setPlatformActionListener(new PlatformActionListener(){

    

    
public
void onError(Platform platform,
int action,
Throwable t){

        //
操作失败的处理代码

    }

    

    
public
void onComplete(Platform platform,
int action,

            
HashMap
<String, Object> res){

        //
操作成功的处理代码

    }

    

    
public
void onCancel(Platform platform,
int action){

        //
操作取消的处理代码

    }

    

});

weibo.share(sp);
//
执行图文分享

}

如上面代码,需要我们有新浪微博的授权。进入新浪微博的开发平台(http://open.weibo.com/wiki/首页),使用微博账号登录注册成为开发者后,进入管理后台,点击创建应用,再选微连接应用(如图)。到后台查看我们的应用信息(如图),把相关信息替换以上代码带**的信息。还需要到接口管理(如图)讲OAuth2.0
授权设置里的授权回调页和取消授权回调页设置为

https://api.weibo.com/oauth2/default.html

 

 

 

 

 

 

我们在应用中设置一个按钮,监听事件里调用上面的share()函数。就会打开授权页面。每次点击按钮都会发送一个新的微博。如图

 

抱歉!评论已关闭.