Android 使用shareSDK分享(快捷分享和分享到指定平台)(微信,qq,微博)

第一步:下载SDK:http://www.mob.com/#/downloadDetail/ShareSDK/Android,选择自己要集成的平台,下载

解压文件,打开ShareSDK for Android文件夹,运行QuickIntegrater.jar,选择需要的内容。会生成Sample文件夹

第二步:将assets,libs,res内容复制到项目中(assets应该在main下面,和java,res并列),快捷分享需要Sample\src下的cn整个文件夹,将其复制到java目录下

自定义分享只需要Sample\src\cn\sharesdk\demo\wxapi的WXEntryActivity.Java文件,复制到项目中

第三步:复制权限

<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"/>

第四步:添加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="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>
 </activity>

<!-- 微信分享回调-->

<activity
    android:name=".wxapi.WXEntryActivity"
    android:configChanges="keyboardHidden|orientation|screenSize"
    android:exported="true"
    android:screenOrientation="portrait"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"/>

第五步:更改assets下ShareSDK的appkey,qq空间,微信,微博 (RedirectUrl必须和微博注册的回调一样)

第六步:(快捷分享)

private void showShare() {
    ShareSDK.initSDK(this);
    OnekeyShare oks = new OnekeyShare();
    //关闭sso授权
    oks.disableSSOWhenAuthorize();
    // title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用
    oks.setTitle(getString(R.string.app_name));
    // titleUrl是标题的网络链接,仅在人人网和QQ空间使用
    oks.setTitleUrl(link);
    // text是分享文本,所有平台都需要这个字段
    oks.setText("全面上线啦");
    // imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
    //oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片
    // url仅在微信(包括好友和朋友圈)中使用
    oks.setUrl(link);
    // comment是我对这条分享的评论,仅在人人网和QQ空间使用
    oks.setComment(getString(R.string.app_name)+link);
    // site是分享此内容的网站名称,仅在QQ空间使用
    oks.setSite(getString(R.string.app_name));
    // siteUrl是分享此内容的网站地址,仅在QQ空间使用
    oks.setSiteUrl(link);
    if (null!=logo){
        oks.setImageUrl(logo);
    }
    // 启动分享GUI
    oks.show(this);
}
分享到指定平台

在activity内实现

PlatformActionListener, Handler.Callback
@Override
public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {
    Message msg = new Message();
    msg.arg1 = 1;
    UIHandler.sendMessage(msg,this);
}

@Override
public void onError(Platform platform, int i, Throwable throwable) {
    Message msg = new Message();
    msg.arg1 = 2;
    UIHandler.sendMessage(msg, this);
}

@Override
public void onCancel(Platform platform, int i) {
    Message msg = new Message();
    msg.arg1 = 3;
    UIHandler.sendMessage(msg, this);

}

@Override
public boolean handleMessage(Message message) {
    switch (message.arg1) {
        case 1: {
	    Toast.makeText(getContext(),"分享成功",Toast.LENGTH_SHORT);
} break; case 2: {
 	    Toast.makeText(getContext(),"分享失败",Toast.LENGTH_SHORT);
} break; case 3: {
	     Toast.makeText(getContext(),"取消分享",Toast.LENGTH_SHORT);
} break; } return false;}
以下分享都是包含图片和链接

public void click(View view) {
    switch (view.getId()) {
        case R.id.copy_share://复制链接
            ClipboardManager cmb = (ClipboardManager) getContext().getSystemService(Context.CLIPBOARD_SERVICE);
            ClipData mClipData = ClipData.newRawUri("Label", Uri.parse(link));
            cmb.setPrimaryClip(mClipData);
	    Toast.makeText(getContext(),"链接已复制",Toast.LENGTH_SHORT);
break; case R.id.friend_share://朋友圈 WechatMoments.ShareParams spwechatmonent = new WechatMoments.ShareParams(); spwechatmonent.setTitle(title);//文字 spwechatmonent.setUrl(link);//链接 spwechatmonent.setImageUrl(picurl);//图片网址 spwechatmonent.setShareType(Platform.SHARE_WEBPAGE);//分享类型(我这里分享的是链接) Platform wechatmonent = ShareSDK.getPlatform(WechatMoments.NAME); wechatmonent.setPlatformActionListener(this); wechatmonent.share(spwechatmonent); break; case R.id.wechat_share://微信 Wechat.ShareParams spwechat = new Wechat.ShareParams(); spwechat.setTitle(title);//标题
spwechat.setText(content);//内容 spwechat.setUrl(link);//链接 spwechat.setImageUrl(picurl);//图片 spwechat.setShareType(Platform.SHARE_WEBPAGE); Platform wechat = ShareSDK.getPlatform(Wechat.NAME); wechat.setPlatformActionListener(this); wechat.share(spwechat); break; case R.id.qq_share://QQ QQ.ShareParams spqq = new QQ.ShareParams(); spqq.setText(content); spqq.setTitle(title); spqq.setTitleUrl(link); spqq.setImageUrl(picurl); Platform qq = ShareSDK.getPlatform(QQ.NAME); qq.setPlatformActionListener(this); qq.share(spqq); break; case R.id.sina_share://新浪 SinaWeibo.ShareParams spsina = new SinaWeibo.ShareParams(); spsina.setText(title+link);//文字+链接(链接自动会区分) spsina.setImageUrl(picurl); Platform weibo = ShareSDK.getPlatform(SinaWeibo.NAME); weibo.setPlatformActionListener(this); weibo.share(spsina); break; }}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个基于 ShareSDK 的封装代码,支持分享微信QQ微博平台。具体步骤如下: 1. 引入 ShareSDK 库。 在 app 的 build.gradle 文件中添加以下依赖: ``` implementation 'cn.sharesdk:sharesdk:3.2.0' ``` 2. 在项目中注册 ShareSDK。 在 Application 的 onCreate() 方法中添加以下代码: ```java ShareSDK.initSDK(this); ``` 3. 添加分享平台。 ```java // 添加微信平台 PlatformConfig.setWeixin("微信 AppID", "微信 AppSecret"); // 添加QQ平台 PlatformConfig.setQQZone("QQ AppID", "QQ AppKey"); // 添加微博平台 PlatformConfig.setSinaWeibo("微博 AppKey", "微博 AppSecret", "回调地址"); ``` 4. 调用分享接口。 ```java /** * 分享指定平台 * * @param platform 平台名称,如:Wechat.NAME 表示分享微信 * @param title 分享标题 * @param content 分享内容 * @param url 分享链接 * @param imageUrl 分享图片链接 */ public void share(String platform, String title, String content, String url, String imageUrl) { Platform.ShareParams shareParams = new Platform.ShareParams(); shareParams.setTitle(title); shareParams.setText(content); shareParams.setUrl(url); shareParams.setImageUrl(imageUrl); Platform platform = ShareSDK.getPlatform(platform); platform.share(shareParams); } ``` 其中 platform 参数为平台名称,可以使用以下常量: ```java Wechat.NAME // 分享微信 WechatMoments.NAME // 分享微信朋友圈 QQ.NAME // 分享QQ QZone.NAME // 分享QQ空间 SinaWeibo.NAME // 分享到新浪微博 ``` 示例代码如下: ```java share(Wechat.NAME, "分享标题", "分享内容", "http://www.example.com", "http://www.example.com/image.jpg"); ``` 这样就可以实现分享功能了。需要注意的是,分享功能需要用户安装对应的客户端才能生效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值