andriod 实现新浪、QQ场地、朋友微信圈、微信朋友分享功能

前言:在自己的学习过程中的一些操作,分享一些理解。

下面将说明什么:

下载链接:http://download.csdn.net/detail/u014608640/7490357

首先。我们须要去ShareSdk官方站点http://sharesdk.cn/ 去下载ShareSDK ,然后我们会有4个文件:

依据我自己在学习的过程中仅仅用到了第一个目录的

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxNDYwODY0MA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast">

libs文件夹的2个项目,这2个是必需要的。是ShareSdk提供的,然后需要将这2个放入到自己做的项目其中去,在Res文件夹下有一个

ShareSdk.xml文件  这个非常重要的。大概意思就是:提供各个client是否能分享。将这个也要拷贝到自己做的项目的assets 文件夹下

第二步,我们须要将第3个文件Sample打开。里面有项目须要用到的一些类,

这个也须要导入到项目中去的,会自己主动生成一个小项目。注意:不是主程序哦。

这个程序中能够进行測试的,秘钥是123456

第三步:配置AndroidManifest.xml

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

其它配置:

  <!-- Share SDK START -->
        <activity
            android:name="cn.sharesdk.framework.ShareSDKUIShell"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"
            android:windowSoftInputMode="stateHidden|adjustResize" >

            <!--
            	AuthorizeAdapter表示一个继承自cn.sharesdk.framework.authorize.AuthorizeAdapter
            	的类。这个类能够监听到页面的生命周期。也能够获取授权页面的各种UI控件。
            	开发人员能够通过继承AuthorizeAdapter,重写其方法。并获取各种UI来自己定义这个页面的行为。
            -->
            <meta-data
                android:name="AuthorizeAdapter"
                android:value="cn.sharesdk.demo.MyAdapter" />

            <!--
            	QZoneWebShareAdapter表示一个继承自cn.sharesdk.tencent.qzone.QZoneWebShareAdapter
            	的类,这个类能够监听到页面的生命周期。也能够获QQ空间网页分享权页面的各种UI控件。

开发人员能够通过继承QZoneWebShareAdapter,重写其方法,并获取各种UI来自己定义这个页面的行为。
            -->
            <meta-data
                android:name="QZoneWebShareAdapter"
                android:value="cn.sharesdk.demo.MyQZoneWebShareAdapter" />

            <!--
            	Dropbox的SSO功能需要在此处加入一个对ACTION_VIEW事件的过滤器,当中的scheme是
            	“db-”前缀再开发人员应用的加上appKey。假设此过滤器不设置。则不能完毕SSO功能授权
            -->
            <intent-filter>
                <data android:scheme="db-7janx53ilz11gbs" />

                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.BROWSABLE" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>

            <!--
            	假设集成QQ分享。或者使用QQclient来进行QQ空间的分享,需要在此处加入一个对ACTION_VIEW
            	事件的过滤器,当中的scheme是“tencent”前缀再开发人员应用的加上appId。假设此过滤器不设置。
            	则分享结束以后不能得到正确的回调
            -->
            <intent-filter>
                <data android:scheme="tencent100371282" />

                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
            </intent-filter>
        </activity>
        <!-- 微信分享回调 -->
        <activity
            android:name="cn.sharesdk.demo.wxapi.WXEntryActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:exported="true"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />

        <!-- Share SDK FINISH -->

配置完之后,就给大家说一下加入分享代码

在您的代码中调用此方法,就可以打开一键分享功能进行分享

列入一个button:

                        ShareSDKUtil shareSDKUtil = new ShareSDKUtil(this);
			shareSDKUtil.setPage(getWindow().getDecorView());
			shareSDKUtil.showShare(false, null);

核心代码:

public class ShareSDKUtil {

	private Context mContext;

	private View mView;

	public ShareSDKUtil(Context context) {
		this.mContext = context;
	}

	public Context getContext() {
		return mContext;
	}

	/**
	 * ShareSDK集成方法有两种</br>
	 * 1、第一种是引用方式。比如引用onekeyshare项目。onekeyshare项目再引用mainlibs库</br>
	 * 2、另外一种是把onekeyshare和mainlibs集成到项目中。本样例就是用另外一种方式</br> 请看“ShareSDK
	 * 使用说明文档”,SDK下载文件夹中 </br> 或者看网络集成文档
	 * http://wiki.sharesdk.cn/Android_%E5%BF%AB
	 * %E9%80%9F%E9%9B%86%E6%88%90%E6%8C%87%E5%8D%97
	 * 3、混淆时。把sample或者本样例的混淆代码copy过去,在proguard-project.txt文件里
	 *
	 *
	 * 平台配置信息有三种方式: 1、在我们后台配置各个微博平台的key
	 * 2、在代码中配置各个微博平台的key。http://sharesdk.cn/androidDoc
	 * /cn/sharesdk/framework/ShareSDK.html
	 * 3、在配置文件里配置,本样例里面的assets/ShareSDK.conf,
	 */
	public void showShare(boolean silent, String platform) {
		final OnekeyShare oks = new OnekeyShare();
		oks.setNotification(R.drawable.app_icon, getContext().getString(R.string.app_name));
		oks.setAddress("12345678901");
		oks.setTitle(getContext().getString(R.string.app_name));
		oks.setTitleUrl("http://www.xx.com");
		oks.setText("555555555555555555");

//		oks.setImagePath(Environment.getExternalStorageDirectory().getAbsolutePath()+"/AndyDemo/ScreenImage/Screen_1.png");  //weixin
//		 oks.setImageUrl("http://f1.sharesdk.cn/imgs/2014/02/26/owWpLZo_638x960.jpg");//MainActivity.TEST_IMAGE_URL
		oks.setImageUrl("/sdcard/AndyDemo/ScreenImage/Screen_1.png");
		// 不能为空。否则微信分享类型为文本
		oks.setUrl("http://www.xx.com");// WeiXin
		// oks.setFilePath(MainActivity.TEST_IMAGE);//WeiXin
		// oks.setComment(getContext().getString(R.string.share));// QZone
		oks.setSite(getContext().getString(R.string.app_name));// QZone
		oks.setSiteUrl("http://www.xx.com");// QZone
		// oks.setVenueName("ShareSDK");
		// oks.setVenueDescription("This is a beautiful place!");
		// oks.setLatitude(23.056081f);
		// oks.setLongitude(113.385708f);
		oks.setSilent(silent);
		if (platform != null) {
			oks.setPlatform(platform);
		}

		// 取消凝视,能够实现对详细的View进行截屏分享
		// Add by yinghui.hong 取消凝视的同一时候须要将setImagePath凝视,见{@link ShareCore share}
//		oks.setViewToShare(getPage());
		oks.setViewToShare((Activity)getContext());
		// 去除凝视,可令编辑页面显示为Dialog模式
		// oks.setDialogMode();

		// 去除凝视,在自己主动授权时能够禁用SSO方式
		// oks.disableSSOWhenAuthorize();

		// 去除凝视,则快捷分享的操作结果将通过OneKeyShareCallback回调
		// oks.setCallback(new OneKeyShareCallback());
		// oks.setShareContentCustomizeCallback(new
		// ShareContentCustomizeDemo());

		// 去除凝视,演示在九宫格设置自己定义的图标
		// Bitmap logo = BitmapFactory.decodeResource(menu.getResources(),
		// R.drawable.ic_launcher);
		// String label = menu.getResources().getString(R.string.app_name);
		// OnClickListener listener = new OnClickListener() {
		// public void onClick(View v) {
		// String text = "Customer Logo -- ShareSDK " +
		// ShareSDK.getSDKVersionName();
		// Toast.makeText(menu.getContext(), text, Toast.LENGTH_SHORT).show();
		// oks.finish();
		// }
		// };
		// oks.setCustomerLogo(logo, label, listener);

		// 去除凝视,则快捷分享九宫格中将隐藏新浪微博和腾讯微博
		// oks.addHiddenPlatform(SinaWeibo.NAME);
		// oks.addHiddenPlatform(TencentWeibo.NAME);

		oks.show(getContext());
	}

	public void setPage(View view) {
		this.mView = view;
	}

	protected View getPage() {
		return mView;
	}

我自己在做的过程中遇到的问题也说一下:  做这些功能分为2种。一种是须要审核的,我做的就是第一种,第2种是不须要审核的。这个大家能够去看下API。

像新浪和微信.QQ空间必需要审核才干够分享的。审核的时间有点长,在微信审核的时候那个应用签名一定要注意了,不能填错哦。否则就算审核成功了,也无法

分享的哦。

QQ空间是支持网络图片,我做的时候本地图片会显示不出来,查了下原因。是由于QQ空间没提过这个功能。所以仅仅能分享文字!





版权声明:本文博主原创文章,博客,未经同意不得转载。

时间: 2024-10-20 13:22:38

andriod 实现新浪、QQ场地、朋友微信圈、微信朋友分享功能的相关文章

andriod 实现新浪、QQ空间、微信朋友圈、微信好友分享功能

前言:自己在学习的过程中的一些操作过程,对分享的一些理解.下面就讲解一下: 下载地址:http://download.csdn.net/detail/u014608640/7490357 首先,我们需要去ShareSdk官方网站http://sharesdk.cn/ 去下载ShareSDK ,然后我们会有4个文件: 根据我自己在学习的过程中只用到了第一个文件夹的 libs目录的2个项目,这2个是必须要的,是ShareSdk提供的,然后需要将这2个放入到自己做的项目当中去,在Res目录下有一个 S

新浪图床上传接口源码分享

部署源码之后自行修改账号密码为自己的新浪账号 <?php /** * 上传图片到微博图床 * @author Youngxj & mengkun & 阿珏 * @param $file 图片文件/图片url * @param $multipart 是否采用multipart方式上传 * @return 返回的json数据 * @code 200:正常;201:错误;203:cookie获取失败;404:请勿直接访问 * @ps 图片尺寸可供选择:square.thumb150.orj

使用微信JS-SDK 实现 自定义 分享 功能

微信PC端点击页面,转发给朋友. 开发前 ,分享之后 ,链接 样式如下: 格式化之后,样式如下: 页面代码: <!DOCTYPE html> <vt:function var="source" method="GetBySingle" args="$Company" type="Business.BLL.Sys.CompanyService" /> <html class="um lan

python+django+新浪sae+有道API实现微信服务号自动翻译

先看效果:你可以自己用微信搜下"黛莱美北京总代理"找下这个公众. 公众号是在淘宝上买的,最偏的那种,无法改名字了,自己玩,就这样了. 直接贴截图,代码,欢迎评论: index.wsgi文件内容: import sae from fanyi_project import wsgi application = sae.create_wsgi_app(wsgi.application) config.yaml文件内容: name: fanyi7lk version: 2 libraries:

微信公众号,分享功能(朋友圈或朋友)

1.引入微信的js文件. <script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script> 2.通过ajax从后台获取必填字段. appId: '', // 必填,公众号的唯一标识timestamp: '', // 必填,生成签名的时间戳<?= $data['timestamp']?>nonceStr: '',/

微信浏览器内嵌分享功能接口

// 微信分享到朋友圈的内容和图片的定制 (function () { // data for weixin var dataForWeixin = { appId: "", // imgUrl: "", imgWidth: "200", imgHeight: "200", url: "", title: "", desc: "", callback: functio

微博系统,集成新浪开发,有需要的朋友下载

原文:微博系统,集成新浪开发,有需要的朋友下载 源代码下载地址:http://www.zuidaima.com/share/1550463701994496.htm 从其他地方下载的,研究了一下,是基于新浪开发的,有需要的朋友进行下载--为大家提供方便 微博集合了最新的开发资源进行开发的,主要让用户有新的体验, 也希望大家给出自己的好点子,进行好的创意,欢迎开源开发. 主要功能包含: 一.发布微博 1.发布微博 2.发布译文微博 3.发布反馈微博 二.获取用户信息及好友关系 1.获取用户信息 2

过关斩将拿下新浪offer记录

顺利的拿到了新浪的offer现在把我的经验分享给大家,希望大家不断的过关斩将,拿到自己心仪的Offer. 自我情况:非985.211的一本大学CS相关专业,优势在于自己还算比较好学,平时常常关注技术的最新发展,也时不时的去github上面去倒腾几个仓库.当时选择新浪也是比较偶然的因素.因为错过了百度的校招,所以当时正好有学长在新浪微博做技术,怂恿我来试试!所以就投了份简历过去. 电话一面:大概过了5天左右,就接到了HR的电话说安排了技术那边的电话技术一面.约定好时间后上网把那些觉得会碰见的面试题

出新,新浪新闻客户端“精读”成“现象级”产品

女司机事件再一次让人们重新审视移动新闻平台价值,据不完全统计,事件当天发生在新浪新闻客户端就有近百万的分享和超百万的评论,这个数值,对于一个移动新闻客户端来说,确实惊人.巨大的数字背后,是新浪新闻客户端的"精读"栏目的综合阅读模式推动的结果,新闻在这里不只是一篇文字,而是事件与观点的传递,声像与文字的结合. 据介绍,"精读"是新浪移动首创产品,含文字报道但又不仅限于文字,视频.相关链接等内容俱全,更具特色的是与社交平台(微博)的打通,让新闻在评论中价值飙升.在&qu