ShareSdk实现第三方分享功能

原创 2015年05月18日 23:03:04

转载请标明出处:http://blog.csdn.net/u011546655/article/details/45830817


背景:         

     今天有很多小伙伴在说,怎么实现微信朋友圈的分享,分享微信好友,微博等啊,很炫酷啊,感觉好牛掰的样子,这个功能怎么实现啊,纠结啊,我一听,其实也就是使用的第三方分享嘛,既然朋友都要用,那么我就发一篇关于sharesdk的博客,当然大家也可以去官方看官方文档,也是很方便的,发布这偏博客,只想让大家实现这个功能,了解这小肉肉,带领小伙伴们分分钟装逼,分分钟搞定这个事情。



一:先上效果图

            



二、实现步骤:

1:注册mob账号,获取appkey

2:下载sharesdk第三方

3:集成

总结:是不是很简单,三部曲搞定,当然这不是死亡三部曲。

sharesdk下载地址:http://wiki.mob.com


三、具体集成


第一步:进入ShareSDK解压目录,打开“Share SDK for Android”目录,可以找到“QuickIntegrater.jar”,这个就是快速集成ShareSDK的工具

在这里你选择你要分享的一些第三方,比如:QQ空间,QQ好友,微信朋友圈,微博等等,根据自己的需求选择



第二步:复制文件到自己的项目中

1.将ShareSdk文件复制到自己的项目中



2.修改 AppKey 替换,如果分享QQ等也是需要去注册AppKey的




3.将主要文件复制到自己项目中




第二步:配置AndroidManifest.xml文件


1.添加权限

  <!-- sdk权限 -->
    <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" />
<pre name="code" class="java">    <uses-permission android:name="android.permission.INTERNET"/>




2.注册Activity信息

<!-- 添加activity信息 -->
        <activity
            android:name="cn.sharesdk.framework.ShareSDKUIShell"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"
            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>
        </activity>

        <!-- 微信分享回调 -->
        <activity
            android:name=".wxapi.WXEntryActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:exported="true"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />

        <!-- 易信分享回调 -->
        <activity
            android:name=".yxapi.YXEntryActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:exported="true"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />


第四步:分享方法

示例代码:

/**
	 * 分享sdk:一键分享
	 */
	private void shareSDK() {
		ShareSDK.initSDK(this);
		oks = new OnekeyShare();
		// 禁用sso授权
		oks.disableSSOWhenAuthorize();
		// 分享时Notification的图标和文字
		oks.setNotification(R.drawable.ic_launcher,
				getString(R.string.app_name));
		// title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用
		oks.setTitle("一键分享");
		// titleUrl是标题的网络链接,仅在人人网和QQ空间使用
		oks.setTitleUrl("http://sharesdk.cn");
		// text是分享文本,所有平台都需要这个字段
		oks.setText("一键分享");
		// imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
		oks.setImagePath("/sdcard/test.jpg");// 确保SDcard下面存在此张图片
		// url仅在微信(包括好友和朋友圈)中使用
		oks.setUrl("http://sharesdk.cn");
		// comment是我对这条分享的评论,仅在人人网和QQ空间使用
		oks.setComment("我是ShareSdk,我已在手,天下我有");
		// site是分享此内容的网站名称,仅在QQ空间使用
		oks.setSite(getString(R.string.app_name));
		// siteUrl是分享此内容的网站地址,仅在QQ空间使用
		oks.setSiteUrl("http://sharesdk.cn");
		// 启动分享GUI
		oks.show(this);
	}

MainActivity :可根据自己需求实现(按钮----点击事件)

package com.sharesdk.ui;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.TextView;
import cn.sharesdk.framework.ShareSDK;
import cn.sharesdk.onekeyshare.OnekeyShare;

import com.sharesdk.view.RefreshableListView;

/**
 * 
 * @author zengtao 2015年3月23日 下午4:01:51
 */
public class MainActivity extends Activity implements OnClickListener {

	/** 分享按钮 */
	private Button bt_share;
	/** 打开遮罩 */
	private Button bt_open_mask;
	/** 快捷分享的入口 */
	private OnekeyShare oks;
	/** 遮罩 */
	private RelativeLayout mLayout = null;
	/** 设置改变 */
	private boolean flag = true;
	/** 用于显示字体 */
	private TextView tv_mesg = null;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		initView();
	}

	/**
	 * 初始化控件
	 */
	private void initView() {
		mLayout = (RelativeLayout) findViewById(R.id.top);
		bt_share = (Button) findViewById(R.id.bt_share);
		bt_open_mask = (Button) findViewById(R.id.bt_start_mask);
		initListener();
	}

	/**
	 * 初始化监听事件
	 */
	private void initListener() {
		bt_share.setOnClickListener(this);
		bt_open_mask.setOnClickListener(this);
	}

	/**
	 * 分享sdk:一键分享
	 */
	private void shareSDK() {
		ShareSDK.initSDK(this);
		oks = new OnekeyShare();
		// 禁用sso授权
		oks.disableSSOWhenAuthorize();
		// 分享时Notification的图标和文字
		oks.setNotification(R.drawable.ic_launcher,
				getString(R.string.app_name));
		// title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用
		oks.setTitle("一键分享");
		// titleUrl是标题的网络链接,仅在人人网和QQ空间使用
		oks.setTitleUrl("http://sharesdk.cn");
		// text是分享文本,所有平台都需要这个字段
		oks.setText("一键分享");
		// imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
		oks.setImagePath("/sdcard/test.jpg");// 确保SDcard下面存在此张图片
		// url仅在微信(包括好友和朋友圈)中使用
		oks.setUrl("http://sharesdk.cn");
		// comment是我对这条分享的评论,仅在人人网和QQ空间使用
		oks.setComment("我是ShareSdk,我已在手,天下我有");
		// site是分享此内容的网站名称,仅在QQ空间使用
		oks.setSite(getString(R.string.app_name));
		// siteUrl是分享此内容的网站地址,仅在QQ空间使用
		oks.setSiteUrl("http://sharesdk.cn");
		// 启动分享GUI
		oks.show(this);
	}

	/**
	 * 打开遮罩
	 */
	private void openMask() {
		if (flag) {
			tv_mesg = new TextView(MainActivity.this);
			tv_mesg.setTextColor(Color.BLUE);
			tv_mesg.setTextSize(20);
			tv_mesg.setText("滚滚长江东逝水,浪花淘尽英雄。\n" + "是非成败转头空,\n"
					+ "青山依旧在,几度夕阳红。\n" + "白发渔樵江渚上,惯看秋月春风。 \n" + "一壶浊酒喜相逢,\n"
					+ "古今多少事,都付笑谈中。");
			tv_mesg.setGravity(Gravity.CENTER);
			tv_mesg.setLayoutParams(new ViewGroup.LayoutParams(
					ViewGroup.LayoutParams.MATCH_PARENT,
					ViewGroup.LayoutParams.MATCH_PARENT));
			tv_mesg.setBackgroundColor(Color.parseColor("#86222222"));
			bt_open_mask.setText("关闭遮罩");
			flag = false;
			mLayout.addView(tv_mesg);
		} else {
			bt_open_mask.setText("打开遮罩");
			flag = true;
			mLayout.removeView(tv_mesg);
		}
	}

	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.bt_share:
			shareSDK();
			break;
		case R.id.bt_start_mask:
			openMask();
			break;
		default:
			break;
		}
	}

	@Override
	protected void onDestroy() {
		super.onDestroy();
		ShareSDK.stopSDK();
	}
}


三:总结

以上呢,便完成了一个简单的ShareSdk分享功能,如果你想要更高级的自定义等等,建议去官方看看他们的文档,这样也有助于学习,提高自己接触新事物的能力,小伙伴们,加油吧,干吧得。

版权声明:本文为博主原创文章,欢迎转载和分享,转载请标明出处!

android 实现分享功能两种方法

当我想做一个智能的记事本的时候,我就在尝试自己写一组分享功能。后来才知道,原来每个社交软件中都有自己的分享接口。 这就大大减少了我们的代码量了。 第一种方法:特点--简单 p...
  • u010597493
  • u010597493
  • 2017年01月03日 14:41
  • 2283

分享给好友功能的实现

1.常用的分享功能实现的框架 http://mob.com/ https://www.umeng.com/2.sharesdk说明: ShareSDK是一种社会化分享组件,为iOS、Andr...
  • jiang547860818
  • jiang547860818
  • 2017年11月24日 14:27
  • 382

Android APP分享功能实现

【Android应用开发详解】第01期:第三方授权认证(一)实现第三方授权登录、分享以及获取用户资料         由于公司项目的需要,要实现在项目中使用第三方授权登录以及分享文...
  • cwcwj3069
  • cwcwj3069
  • 2014年12月03日 15:44
  • 66092

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

转自:http://my.oschina.net/u/1024921/blog/170588 之前用过这个几次了,而每次都没有记录一下具体的步骤,这次就写一下吧 1、去ShareSDK...
  • gf771115
  • gf771115
  • 2014年05月30日 13:32
  • 100043

用shareSdk实现的第三方登录与分享

版权声明:本文为博主原创文章,未经博主允许不得转载。说到第三方登录与分享,其实有很多sdk都支持,不过最常用的还算友盟和mob了,我今天打算记录一下sharesdk的第三方登录与分享,其实也就是简单实...
  • zr940326
  • zr940326
  • 2016年06月21日 22:20
  • 1461

关于使用友盟第三方平台集成第三方分享

大家在在做项目大多数都要用到各种的第三方分享,授权,登录,往往要集成很多的sdk,看各个网站的帮助文档,对应的就比较繁琐,现在,友盟帮助我们解决了这个问题。本文只简单的介绍了分享的方法。如果还有不懂,...
  • loserOr
  • loserOr
  • 2016年10月19日 13:47
  • 940

第三方应用分享到微信朋友圈功能

最权威的学习资料还是要去看官网,以及官网提供的Demo,基本上你是可以直接拿来使用的,这是官网网站:http://open.weixin.qq.com/。          在微信分享中主要碰到了如...
  • sc52086
  • sc52086
  • 2016年02月28日 11:07
  • 724

关于第三方登录与分享的问题总结

最新完成项目中的第三方登录与分享的功能,主要实现了 微信、QQ、微博、豆瓣的第三方登录与分享。 关于第三方登录与分享,网上有很多的第三方集成平台,使用这些平台,开发者只需要完成该平台的代码就可以实...
  • Mr_WangGang
  • Mr_WangGang
  • 2015年06月25日 09:49
  • 1553

友盟第三方登陆,及分享,使用工具集成。

做了很多中方式登陆,分享,个人认为下面这一种最为简单实用;                             首先,使用SDKIntegration友盟集成配置工...
  • guoxinbo7899
  • guoxinbo7899
  • 2016年04月05日 16:13
  • 1630

Android studio下使用ShareSDK实现一键分享

首先新建了一个项目用来演示集成ShareSDK   下载好了ShareSDK之后,解压sharesd 我们按照下面的步骤使用快速集...
  • caizhigui
  • caizhigui
  • 2016年05月08日 13:51
  • 2630
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ShareSdk实现第三方分享功能
举报原因:
原因补充:

(最多只允许输入30个字)