请先开启并登入wechat 不用手机登入才可以使用分享功能?

Swift 使用ShareSDK完成第三方分享功能 - swift迷
前段时间用ShareSDK完成了第三方分享的部分,由于说明文档是Objective-C语言,所以将版本整理一下,分享过来。本文以新浪微博(网页授权)为例,其他平台相似。
前期准备:
1、登陆 并进入开发者后台,添加一个应用,获得App Key和App Secret。
2、登陆新浪微博开发者平台 ,添加应用,获得App Key和App Secret。
正式开始:
1、进入 -ShareSDK For iOS专用快速集成组件,下载你所需要的社交平台framework:
2、将下载的SDK解压后导入工程中,勾选”Copy items if needed”:
3、添加依赖库:
SystemConfiguration.framework
QuartzCore.framework
CoreTelephony.framework
libicucore.dylib
libz.1.2.5.dylib
Security.framework
4、新建Header File,并建立桥接:
5、打开桥接文件(TEST-Bridging-Header.h)导入文件头:
6、在Appdelegate.Swift初始化SDK和第三方平台(附常见平台代码):
ShareSDK.registerApp("ShareSDKAppKey")
//新浪微博
ShareSDK.connectSinaWeiboWithAppKey("", appSecret: "273f5cbed2", redirectUri: "/balancea")
ShareSDK.connectDoubanWithAppKey("02e0393e2cfbecb508a0abba86f3c61f", appSecret: "9a000e648fd0cbce", redirectUri: "")
ShareSDK.connectQZoneWithAppKey("", appSecret:"WEKkOPW0NJkc1cwS", qqApiInterfaceCls: QQApiInterface.classForCoder(), tencentOAuthCls: TencentOAuth.classForCoder())
ShareSDK.connectQQWithAppId("", qqApiCls:QQApiInterface.classForCoder())
//链接微信
ShareSDK.connectWeChatWithAppId("wx5f09f3b56fd1faf7", wechatCls: WXApi.classForCoder())
//微信好友
ShareSDK.connectWeChatSessionWithAppId("wx5f09f3b56fd1faf7", wechatCls:WXApi.classForCoder())
//微信朋友圈
ShareSDK.connectWeChatTimelineWithAppId("wx5f09f3b56fd1faf7", wechatCls: WXApi.classForCoder())
ShareSDK.connectRenRenWithAppKey("3899f3ffa7ce3d7530142", appSecret: "4a9df27ad05dbb52ef1483a")
7、在分享按钮或其他控件的动作中添加实现代码:
func share() {
var publishContent : ISSContent = ShareSDK.content("分享文字", defaultContent:"默认分享内容,没内容时显示",image:nil, title:"提示",url:"返回链接",description:"这是一条测试信息",mediaType:SSPublishContentMediaTypeNews)
ShareSDK.showShareActionSheet(nil, shareList: nil, content: publishContent, statusBarTips: true, authOptions: nil, shareOptions: nil, result: {(type:ShareType,state:SSResponseState,statusInfo:ISSPlatformShareInfo!,error:ICMErrorInfo!,end:Bool) in
println(state.value)
if (state.value == SSResponseStateSuccess.value){
println("分享成功")
var alert = UIAlertView(title: "提示", message:"分享成功", delegate:self, cancelButtonTitle: "ok")
alert.show()
else {if (state.value == 2) {
var alert = UIAlertView(title: "提示", message:"您没有安装客户端,无法使用分享功能!", delegate:self, cancelButtonTitle: "ok")
alert.show()
println(error.errorCode())
println(error.errorDescription())
至此,已可以使用新浪微博网页授权进行分享,如需使用客户端,只需添加SSO授权即可。
另外,新注册腾讯开放平台帐号只支持SSO授权,只是老开发者才可以使用网页授权。
豆瓣开发者平台新建应用后,需要添加测试ID,并使用此ID进行分享测试。
原开发文档:快速集成指南/
solar 于 1 年前
Swift开发交流QQ群:图案背景纯色背景上传我的文档下载&/&1举报&
文章贡献者馆藏:关注:该文章贡献者很忙,什么也没留下。关注我发私信下载此文章微信WeChat 使用教程文档星级:内容提示:应用简介:
微信是一款网络对讲机应用,由腾讯开发。通过网络进行语音留言的软件,微信不是第一个,兔纸最早使用的是同学介绍的TalkBox
([iTunes链接](
TalkBox - 使用人人帐号连接 By Green Tomato Limited
微信的主要功能是通过网络进行语音和文字聊天,除了离开Wifi环境用3G网使用时产生的流量费用外,微信是完全免费的一项服务,比起电话来说省话费,比起
Skype和Facetime来说省流量,...
浏览次数:43|
上传日期: 17:39|
评论数量:0|下载次数:0  应用简介:
  微信是一款网络对讲机应用,由腾讯开发。通过网络进行语音留言的软件,微信不是第一个,兔纸最早使用的是同学介绍的TalkBox
([iTunes链接](
  TalkBox - 使用人人帐号连接 By Green Tomato Limited
  20.6 MB
  微信的主要功能是通过网络进行语音和文字聊天,除了离开Wifi环境用3G网使用时产生的流量费用外,微信是完全免费的一项服务,比起电话来说省话费,比起
Skype和Facetime来说省流量,所以备受亲睐。除了以上的主要功能外,使用微信除了可以和认识的朋友聊天,还可以通过地理位置找人聊天(这个功能争议性比较大),除了语音和文字,还可以发送图片和视频通话。
  功能目录:
  下载/注册/登录
  添加朋友
  添加陌生人
  开始聊天吧!
  发起多人聊天
  朋友圈
  关注公共账号
  01、下载/注册/登录 返回目录
  目前微信在各个区都能下载,只要在任意App
Store里免费下载一个就可以了。初次打开程序时,记得要允许推送,这样有消息的时候就会推送给你了。如果用户有QQ号,可以直接登录。如果没有QQ
号,需要通过手机号注册。个人强烈推荐使用QQ号,因为偶觉得手机绑定感觉上有点不靠谱。再说QQ对国人来说已经相当普及了。而且用QQ登录的话,添加好友也更方便,这个稍后再说。
  虽然腾讯一再说可以用邮箱注册微信,其实不行,至少在手机端,只能通过QQ或者手机号来注册,然后绑定上邮箱。绑定之后可以用邮箱号来当微信用户名而已。
  02、添加朋友 返回目录
  登录微信后,聊天时刻开始!系统会问你是否打开通讯录匹配,这样如果通讯录里有人用手机号当微信号就可以添加了。但这样做的前提是必须绑定手机,所以不推荐大家使用。不绑定手机的前提下,在通讯录页面点击左上角添加好友按钮(一个小人头和加号图标)即可进入添加朋友页面。或者在朋友们页面里也能看到添加朋友。
  对于新用户来说,建议最先从QQ好友列表添加,因为一是一般好友都会在QQ上,二是用微信的人一般都用QQ注册,朋友圈覆盖的比较广。选中从QQ好友列表添加之后,因为QQ和微信无缝连接,所以好友分组等都和QQ一样。打开你要添加的组,凡是已经有微信的就会排列在前面,右侧有一个&添加&按钮。点击之后再点&添加到通讯录&,一般会弹出验证,和加QQ一样,对方通过验证之后就会添加到你通讯录里面了。
  此外,除了使用QQ添加,那些不使用QQ或者是没在你好友里面的,可以通过搜号码来添加了,不管是微信号、QQ号、手机号还是公共账号都可以使用搜号码来添加。
  比较炫一点的还有通过二维码来添加。使用二维码的一般公共账户居多。点击&扫一扫&后,微信会启动照相机,把照相机中间的方框对准黑白相间的二维码就可以识别并添加了。添加了的朋友会出现在通讯录中,按照名字首字母的顺序排列。
  03、添加陌生人 返回目录
  随机或者按照地理位置来添加好友是一个很富有争议的功能,在这里不做评价,只说说使用方法。
  在朋友们页面里,查找附近的人就可以看见自己周围有哪些人正在使用微信。如果点击之后页面变灰,说明没有开启地理位置定位。这是出于对隐私的保护,这种状态下,陌生人是不能向你发送好友申请的。开启地理位置的方法是:在主屏幕选择
设置&隐私&定位服务。在定位服务的下方的诸多程序中找到微信,右边的按钮呈灰色,把按钮上的圆形键往右移,按键成蓝色后就打开了。(以后如果要关闭,也是在这里弄!)回到主菜单再次进入微信以后,周围的人就会以距离由远及近的顺序出现了。点入感兴趣的人,可以跟他们打招呼了。
  如果觉得结交附近的人比较尴尬,可以试试摇一摇,这也需要开启地理位置信息。打开&摇一摇&,晃动一下手机,就可以摇到在同一时间也在无聊中摇摇的人。另外一种漂流瓶用法和QQ漂流瓶一样,也是随机把你的信息放在漂流瓶里看谁会捡到。这个功能就不需要开启地理位置了。进入之后点击左下方的&扔一个&空瓶子,说话或者打字完毕后,点击扔出去,就静候佳音吧,不知道什么时候、什么地方的人会捡到并回复。如果不想扔,右划屏幕就可以回到海滩上。点击中间的&捡一个
&可以捡到随机的瓶子。这个功能比较简单。
  04、开始聊天吧! 返回目录
  添加完一堆好友后,开始聊起来吧!在通讯录中,用户选中想要聊天的对象,点击绿色的&发消息&按键就会出现对话框。屏幕下方是信息输入栏,如果左边圆形按钮呈扩音器图案,则是文字输入模式,点击一下中间的方框就会弹出键盘。右侧笑脸是表情,里面有经典QQ表情,符号表情(Emoji)和动画表情。笑脸旁边的
&+&按键就可以插入图片、发送位置、名片、实时对讲和视频聊天。
  插入图片和其他聊天软件一样, 可以发送相片集里面的照片或者直接拍摄照片发送。
  发送地理位置功能对于兔纸这种路痴的人来说很贴心,如果迷路的话,只要把位置发给好友求救就OK啦!
  发送名片指的是把联系人中的某位的名片发给其他人,包括微信号等一些基本信息。
  实时对讲和视频聊天就相当于音频和视频聊天,只是效果都没有Skype和Facetime的好,算是微信中一个比较鸡肋附带的功能,使用上没有什么难点。
  以上都是文字聊天中可以实现的一些功能。现在来说说微信的主打聊天方式&&语音输入。如果在输入栏中有&按住说话&的长按钮,只需用手指按住该按钮,对着机身下方的话筒或者是耳机孔说话就可以了。不过,说话的时候要注意,按住之后稍微等上个半秒钟再说话,否则有时候话的开头会被截掉。说完话后也稍微顿一下再松开手指。说话的长度不宜过长,否则不仅会被截掉半截,且对方听着也很累。兔纸就特别恐惧那种一说说好多句,每一句都一大段的人。
  根据说话的长短,语音发送出去之后也是长短不一的。绿色是对方的话,如果未听,右边会有一个红点。听了之后(不管是否听完),红点消失。自己说的话是白色的,说完之后白色条会一闪一闪的,表明正在发送中。一般来说,微信都把语音流量占用压缩的很小,所以发送的速度很快。除非网络有问题,左侧就会出现一个红色叹号,表明没有发送成功。如果想要重发,点击红色叹号,就会弹出对话框,点击&是&就可以。
  在不使用耳机的情况下收听语音微信时,有耳机模式和扬声器模式,修改模式在微信页面。点击右上角仙女棒似的按钮,就可以切换到另外的模式。截图中,兔纸的微信处于耳机模式。
  05、发起多人聊天 返回目录
  如果是闺蜜大联欢或者神马的需要群聊的时候,微信同样很方便。在微信界面里点击右上角仙女棒,点击&发起聊天&,你就可以在联系人里面勾选要群聊的人了。之后发送的信息都会推送到每个人的微信上,类似于QQ的临时会话群。
  兔纸一直有个班级群,里面叽叽喳喳的,热闹的时候一个小时就有上百条。如果讨厌手机响个不停的话,在群聊界面点击右上角的两个小人头图标(聊天信息),下拉到底部,点击&详细设置&,然后把新消息通知关闭就可以了。如果不想留在群里,就在聊天信息里点击红色的&删除并退出&即可。
  06、朋友圈 返回目录
  朋友圈是一个类似于Instagram那样的照片分享功能,现在也逐渐加入了帖子分享。在朋友们页面下,第一个按钮&朋友圈&就可以让你看到好友们分享的照片。照片以时间线方式倒序排列。点击图片右下方的对话框按键,可以赞照片,也可以进行评论。
  当然,自己也可以发送图片,只需点击右上角的照相机按钮(长按可发纯文字内容),就可以照相或选择相册里的照片上传。如果只传单张的话,有10种滤镜可以用来简易修图。多张就不可以了。上传完后,可以随意的写上几句评论。
  07、关注公共账号 返回目录
  除了和个人聊天外,很多公司和平台(比如咱们的爱应用)都有专属的公共账号,用于定期发布一些消息给感兴趣的用户。大家只需在添加朋友的界面下方点击&查找微信公共账号&,输入&爱应用&,就可以找到小黄标的我们。因为账号有重复现象,一定要认准黄色小框框哦!
  点击关注之后,精彩限免每日由微信送达。简介的小贴纸图文咨询,收限免的时尚工具!
  文章纠错
好啦,是不是已经嫌兔纸啰啰嗦嗦啦?这些就是微信的基本功能了,其余的细碎的小功能就有待您的发现了!记得在留言中告诉兔纸哟!第一次写说明书,不足之处也请大家一并写在评论中吧~
此 App 已针对 iPhone 5 进行优化
您可能还感兴趣的文章:关注我们官方公共微信如何使用微信JS-SDK实际分享功能?
今天研究了微信JS-SDK接口功能,然后产生了几个疑问,&br&首先在填写服务器配置的时候,点击提交后,微信服务器将发送GET请&br&求到填写的服务器地址URL上,&br&GET请求携带四个参数:signature、timestamp、nonce、echostr &br&&div class=&highlight&&&pre&&code class=&language-text&&加密/校验流程如下:
1. 将token、timestamp、nonce三个参数进行字典序排序
2. 将三个参数字符串拼接成一个字符串进行sha1加密
3. 开发者获得加密后的字符串可与signature对比,
标识该请求来源于微信
根据上面的流程1.2步得到的是签名,然后和传过去的signature对比,
其中就只有token不是传过去的,如果这样的话,直接传token过去验证不就可以了吗,
为了安全行吗?
然后就是,是不是在自己服务器还要写一个检验的php文件,我在微信平台提交服务器的时候,
它如何知道我把参数提交到那个php文件?
上面是验证服务器地址的有效性
--------------------------
然后我想用用微信JS-SDK实际分享功能
1.设置JS接口安全域名
2.在开发者中心中获取你的AppID和AppSecret,接下来在获取令牌
3.获得access_token和jsapi_ticket
4.签名,将jsapi_ticket、noncestr、timestamp、分享的url按字母顺序连接起来,
进行sha1签名。noncestr是你设置的任意字符串。timestamp为时间戳。
$timestamp = time();
$wxnonceStr = &任意字符串&;
$wxticket = wx_get_jsapi_ticket();
$wxOri = sprintf(&jsapi_ticket=%s&noncestr=%s×tamp=%s&url=%s&,$wxticket,
$wxnonceStr, $timestamp,'要分享的url(从http开始,如果有参数,包含参数)');
$wxSha1 = sha1($wxOri);
-------------------------
这里又有一个签名,我想问这两个签名是不是没有任何联系的?
-----------------------------
然后在javascript中,
wx.config({
debug: false,
appId: &你的AppID&,
timestamp: '上一步生成的时间戳',
nonceStr: '上一步中的字符串',
signature: '上一步生成的签名',
jsApiList: ['onMenuShareTimeline',
'onMenuShareAppMessage'] // 功能列表,我们要使用JS-SDK的什么功能
如何将上面产生时间戳的文件运行,然后把值传到javascript中?
我个人觉得是这样的,建一个php文件a,用来产生timestamp、nonceStr、signature,
同时在另一个文件的javascript中读取到a文件的timestamp、nonceStr、signature,
问题是有javascript的文件中如何使文件a运行起来,产生出timestamp、nonceStr、signature
这三个参数?
&/code&&/pre&&/div&
今天研究了微信JS-SDK接口功能,然后产生了几个疑问,首先在填写服务器配置的时候,点击提交后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带四个参数:signature、timestamp、nonce、echostr 加密/校验流程如下:
1. 将token、timestamp、nonce三个参数进行字典序排序
2. 将三个参数字符串拼接成一个字符串进行sha1加密
3. 开发者获得加密后的字符串可与signature对比,
标识该请求来源于微信
根据上面的流程1.2步得到的是签名,然后和传过去的signature对比,
其中就只有token不是传过去的,如果这样的话,直接传token过去验证不就可以了吗,
为了安全行吗?
然后就是,是不是在自己服务器还要写一个检验的php文件,我在微信平台提交服务器的时候,
它如何知道我把参数提交到那个php文件?
上面是验证服务器地址的有效性
--------------------------
然后我想用用微信JS-SDK实际分享功能
1.设置JS接口安全域名
2.在开发者中心中获取你的AppID和AppSecret,接下来在获取令牌
3.获得access_token和jsapi_ticket
4.签名,将jsapi_ticket、noncestr、timestamp、分享的url按字母顺序连接起来,
进行sha1签名。noncestr是你设置的任意字符串。timestamp为时间戳。
$timestamp = time();
$wxnonceStr = "任意字符串";
$wxticket = wx_get_jsapi_ticket();
$wxOri = sprintf("jsapi_ticket=%s&noncestr=%s×tamp=%s&url=%s",$wxticket,
$wxnonceStr, $timestamp,'要分享的url(从http开始,如果有参数,包含参数)');
$wxSha1 = sha1($wxOri);
-------------------------
这里又有一个签名,我想问这两个签名是不是没有任何联系的?
-----------------------------
然后在javascript中,
wx.config({
debug: false,
appId: "你的AppID",
timestamp: '上一步生成的时间戳',
nonceStr: '上一步中的字符串',
signature: '上一步生成的签名',
jsApiList: ['onMenuShareTimeline',
'onMenuShareAppMessage'] // 功能列表,我们要使用JS-SDK的什么功能
如何将上面产生时间戳的文件运行,然后把值传到javascript中?
我个人觉得是这样的,建一个php文件a,用来产生timestamp、nonceStr、signature,
同时在另一个文件的javascript中读取到a文件的timestamp、nonceStr、signature,
问题是有javascript的文件中如何使文件a运行起来,产生出timestamp、nonceStr、signature
这三个参数?…
按投票排序
我研究的结果是:在网页里点个按钮不能够直接分享到朋友圈,只是可以设置官方“分享到朋友圈”按钮点击后的分享内容
看看开发文档。。再不行官方不是还有demo么。。。。。。去研究研究再来问吧。
已有帐号?
无法登录?
社交帐号登录不知不觉又陪大家过了一个月,转眼就要到 6 月了,一说到 6 月,关注本站的同学们大概...
iPhone 切换到三年为一个周期的策略,苹果之前的一切良性循环不是要统统被打破了吗?...
放眼整个手游市场,敢于尝试时间收费的寥寥无几。
这款插件更像是一款情怀作品,至于有没有实际意义就看你自己如何评价了。
从配置方面来看,这是一款定位中端的产品。
特斯拉成名多年,其实传统的汽车厂商们并不是那么着急。
据悉,苹果在2015年依然是专利流氓的头号目标。
也许是因为涉嫌漏税,当地人对苹果的新项目并不感冒。
刀塔的故事背景我想不少朋友已经很熟悉,再重复灌输难免显得有些啰嗦,详细的剧情小...
曾经开发过《Crook(诡计)》、《Beast Riders(野兽骑手)》等多款游戏的开发商 ELIG...
Swelab Games 推出的新作《逃跑英雄(Runaway Hero)》是一款难度较高的横版闯关冒险...
游戏还是值得一试的,虽然不及一些大作这么丰富和高质量,但是作为一款休闲游戏来说游...
相信“雷鸟神机队”这个略显中二的名字在广大的中国玩家当中并不会引起多大的反响,但...
“寓教于乐”是现今对教育的探讨中,一个非常有趣并且有用的观点。将“有趣的”“新奇...
《越狱》让更多的开发商投入到制作以监狱为题材的游戏中,Games Banner Network 旗下...
每当出远门的时候,你是否会为要带太多的线缆而感到烦恼?
在智能手机领域,无线充电技术将会是未来发展的一个重要方向。
这个感觉格调够高哦,一说到有机,绿色,天然,大家都懂的~
如果给你选择,你是否希望获得这样一款基座呢?
押宝iPhone 7会取消3.5mm耳机插孔看起来会是一个不错的选择~
Burkley 皮质保护壳造型非常复古,它由表面的真皮和内部的硬质塑料打造而成,将 MacBo...
Adonit 推出了一款新的手写笔,人们将之称为苹果 Apple Pencil 的竞争对手。
由于当地还没有官方零售店,库克在授权店也开了一次眼界。
关于wechatplugin
注册时间 最后登录
在线时间1811 小时 UID
主题帖子人气
白苹果, 积分 654, 距离下一级还需 846 积分
现在一更新就失效了…只要不更新就可以一直保留防止撤回消息的这个功能。我的手机是越狱的了,可惜没有备份已经装了wechatplugin的微信。请问有封釉有越狱的手机并且装了wechatplugin的插件了吗?可以通过pp助手提取出来给别人安装…有的话请加一下我QQ,127二961801~我想把这个插件装回去…谢谢…有偿也可以
注册时间 最后登录
在线时间1811 小时 UID
主题帖子人气
注册时间 最后登录
在线时间1811 小时 UID
主题帖子人气
木有人了吗
注册时间 最后登录
在线时间1811 小时 UID
主题帖子人气
注册时间 最后登录
在线时间260 小时 UID
主题帖子人气
我有2.0.1的,不是是iPad上的,iPhone没越狱
注册时间 最后登录
在线时间1811 小时 UID
主题帖子人气
哎,千万别更新,更新就没了回4楼复读者联盟于半小时前发表的: 我有2.0.1的,不是是iPad上的,iPhone没越狱......
注册时间 最后登录
在线时间1811 小时 UID
主题帖子人气
可以留个QQ或是微信吗?谢谢回4楼复读者联盟于半小时前发表的: 我有2.0.1的,不是是iPad上的,iPhone没越狱......
注册时间 最后登录
在线时间260 小时 UID
主题帖子人气
我从不更新任何东西,只要能用,iOS不更新APP也半年不更一个回5楼snzd007于半小时前发表的: 哎,千万别更新,更新就没了......
注册时间 最后登录
在线时间260 小时 UID
主题帖子人气
要怎么提取出来呢?我不会提取插件回6楼snzd007于半小时前发表的: 可以留个QQ或是微信吗?谢谢......
注册时间 最后登录
在线时间1811 小时 UID
主题帖子人气
用pp助手把整个微信备份起来!这样就没问题了,不小心更新了也可以恢复,可能留个QQ吗?或是加一下我的,谢谢回8楼复读者联盟于11 分钟前发表的: 要怎么提取出来呢?我不会提取插件......
威锋旗下产品
Hi~我是威威!
沪公网安备 29号 | 沪ICP备号-1
新三板上市公司威锋科技(836555)
增值电信业务经营许可证:
Powered by Discuz!如何使用ShareSDK让APP快速拥有分享功能_百度知道
如何使用ShareSDK让APP快速拥有分享功能
提问者采纳
  Android 集成指南 1 获取ShareSDK 为了集成ShareSDK,您首先需要到ShareSDK 官方网站注册并且创建应用,获得 ShareSDK 的Appkey,然后到SDK 的下载页面下载SDK 的压缩包,解压以后可以得到 下图的四个目录: 其中的Libs 包含ShareSDK 的类库,Src 包含集成微信和新浪微博需要的回调,Res 是 开发者信息示例,而Sample 则包含一个完整的操作演示。 Libs 里具体包括三个文件夹,分别是ShareSDK 的全局依赖库、ShareSDK 当前支持的 所有平台工具库和ShareSDK 可视化UI 的一些支持库。“全局依赖库”是集成ShareSDK 的基础,ShareSDK 的任何平台都依赖于这个库,而“ShareSDK-GUI”提供的是一个侧栏 控件和一个快捷分享工具,以方便开发者更快速地集成ShareSDK。 2 快速集成 2-1 导入Libs 1) 将“Libs\Global-Dependences”下的jar 包复制到您的libs 目录下。 2) 从“Libs\Platforms”中选择您感兴趣的平台,比方说“新浪微博”、“QQ 空间”、“腾讯 微博”等,复制相应的压缩包您项目的libs 目录下并解压,解压过程中如遇覆盖提示, 请同意覆盖。 3) 如果您决定使用ShareSDK 提供的快捷分享工具,请复制“Libs\ShareSDK-GUI”中复 制“cn.sharesdk.onekeyshare.jar”到您项目中。 4) 如果您的开发环境不能自动加载ShareSDK 的jar 包到您的项目中,请修改您项目 的构建路径,将上述jar 包添加到您的项目中。下图以Eclipse 为例,展示添加后的效果: 2-2 添加代码 1) 打开您项目的入口Activity,在其onCreate 中插入下面的代码: ? 1 AbstractWeibo.initSDK(this); 这行代码用于初始化ShareSDK,必须在程序启动之时调用。 2)使用下面的代码,调用ShareSDK 快捷分享功能: 分享时Notification 的图标 ? 01 02 03 04 05 06 07 08 09 Intent i = new Intent(this, ShareAllGird.class); // 分享时Notification 的图标 i.putExtra(&notif_icon&, R.drawable.ic_launcher); // 分享时Notification 的标题 i.putExtra(&notif_title&, getString(R.string.app_name)); // 分享内容的标题(仅部分平台需要此字段) i.putExtra(&title&, &ShareSDK Demo&); // 分享内容的文本 i.putExtra(&text&, &share at: & + System.currentTimeMillis()); 10 11 12 13 14 15 // 分享内容的本地图片路径(为null 或文件不存在表示不分享图片) i.putExtra(&image&, Environment.getExternalStorageDirectory () + &/ssdk.png&); // 分享内容的网络图片地址(仅部分平台需要此字段) i.putExtra(&image_url&, &&); // 设置是否跳转内容编辑页面,true 表示不跳转,不传递表示false(跳转) i.putExtra(&silent&, silent); star憨姬封肯莩厩凤询脯墨tActivity(i); 3) 如果您的项目中集成微信平台,请将“Sample/src/cn/sharesdk/demo”中的“wxapi” 目录复制到您的项目主包下。 4) 如果您的项目中集成微博平台,请将“Sample/src”中的“com”目录复制到您的项目 中。 2-3 添加开发者信息 ShareSDK 使用统一的格式管理您在不同平台上注册的开发者信息。这些信息都存放在 您项目的“assets/ShareSDKDevInfor.xml”中。请到“Res”中将ShareSDKDevInfor.xml 复 制到您项目的对应位置,打开文件,然后根据不同的平台的数据,如下面的例子所示, 替换您在这个平台上的开发者信息: ? 1 2 3 4 5 6 7 2-4 配置AndroidManifest.xml 1) 请在您项目的AndroidManifest.xml,添加了如下的所有权限: ? 1 2 3 4 5 6 7 8 这些权限将允许您的项目和ShareSDK 获取连接网络的权限、获取您的设备网络状态的 权限、实现https 安全连接的权限、读取手机设备状态的权限和保存必要配置的权限。 一般来说,即便不集成ShareSDK,大部分的项目也都会注册申请这些权限。 2)在application 下注册下面的Activity: ? 1 2 3 4 5 6 7 3)如果您的项目集成为微信和新浪微博,在application 下注册下面的Activity: ? 01 02 03 04 05 06 07 08 09 104)如果您的项目集微信,在application 下注册下面的Activity: ? 1 2 3 4 5 5)如果您使用ShareSDK 的快捷分享工具,在application 下注册下面的Activity: ? 01 02 03 04 05 06 07 08 09 2-5 签名 对于ShareSDK 的大部分平台,只要您将其jar 包和依赖集成到您的项目以 后就可以开始进行工作了。但是对于微信的两个平台却不行。因为微信开放平台要求 android 的第三方开发者需要提供自己项目的信息和签名指纹数据。为了演示分享功能 Sample 包中携带了一个&demokey.keystore&的keystore 文件,其密码是“123456”,如 果您在调试SSDKDemo 的时候集成了微信的平台,就需要使用这个keystore 对apk 进 行签名,之后才能尝试微信的分享。 3 主要功能解释 ShareSDK 使用同一的接口实现不同平台的同类操作,如:授权、分享、关注等等。因 此开发者可以在不理会平台差异的情况下,简单使用一句代码完成不同平台的各种操作。 3-1 获取已集成的平台列表 下面的代码演示获取已经集成到您项目中的ShareSDK 平台列表: ? 1 AbstractWeibo[] weiboList = AbstractWeibo.getWeiboList(context) 返回的列表中平台的排列顺序依照您在ShareSDKDevInfor.xml 中为其配置的SortId 来 定。 请注意,此方法在第一次调用的时候可能会比较耗时,因此不建议在主线程中调用。 3-2 通过名字获取指定平台实例 除了getWeiboList 的方法可以获取到平台实例以外,如果您想单独获取某一个平台的实 例,还可以利用下面的方法,若获取腾讯微博的实例: ? 1 AbstractWeibo weibo = AbstractWeibo.getWeibo(context, TencentWeibo.NAME); 其中的,其中的TencentWeibo.NAME 是腾讯微博平台的静态字段,每一个平台都有一 个NAME 的字段,表示其名字。 3-3 设置操作回调 不论利用ShareSDK 进行何种操作,如果希望得到操作的结果,都必须为执行操作的平 台设置WeiboActionListener 的回调。下面的代码演示对腾讯微博绑定 WeiboActionListener 的方法: ? 01 02 03 04 05 06 07 08 09 10 11 12 13 14 AbstractWeibo weibo = AbstractWeibo.getWeibo(context, TencentWeibo.NAME); weibo.setWeiboActionListener( new WeiboActionListener() { public void onError(AbstractWeibo weibo, int action, Throwable t) { // 操作失败的处理代码 } public void onComplete(AbstractWeibo weibo, int action, HashMap res) { // 操作成功的处理代码 } public void onCancel(AbstractWeibo weibo, int action) { // 操作取消的处理代码 } } ); 3-4 授权 手动授权并不是必要的操作,但是ShareSDK 提供手动的授权操作,如下面的代码演示 新浪微博的授权操作: ? 1 2 3 AbstractWeibo weibo = AbstractWeibo.getWeibo(context, SinaWeibo.NAME); weibo.setWeiboActionListener(waListener); weibo.authorize(); 授权结果将通过WeiboActionListener 接口返回。 3-5 获取用户资料 下面的代码演示新浪微博获取资料的方法,其他的平台(微信除外)也支持类似的操作: ? 1 2 3 String account = &&; AbstractWeibo weibo = AbstractWeibo.getWeibo(context, SinaWeibo.NAME); weibo.setWeiboActionListener(waListener); weibo.showUser(account); 其中account 是准备获取资料的帐号,如果account 为null,则表示获取授权账户自己 的资料。 获取资料前ShareSDK 会自行判断平台是否已经授权,若未授权,会自行执行授权操作。 3-6 分享 下面的代码演示通用的分享操作(QQ 空间、印象笔记请参考另外更合适其平台特性的 接口): ? 1 2 3 4 5 String text = “测试分享的文本”; String image = “/mnt/sdcard/测试分享的图片.jpg” ; AbstractWeibo weibo = AbstractWeibo.getWeibo(context, SinaWeibo.NAME); weibo.setWeiboActionListener(waListener); weibo.share(text, image); 其中的text 是分享的文本内容,image 是分享图片的本地路径。 微信好友和微信朋友圈的分享,应该使用新的分享接口,具体操作可以参考Sample 中 的相关例子,下面的例子展示使用微信分享网页的方法: ? 1 2 3 4 5 6 7 8 AbstractWeibo weibo = AbstractWeibo.getWeibo(menu.getContext(), Wechat.NAME); weibo.setWeiboActionListener(this); String title = &这是标题&; String text = &这是文本内容&; String url = &&; String thumbUrl = &/mnt/sdcard/网页缩略图.jpg&; weibo.share(AbstractWeibo.SHARE_WEBPAGE, title, text, url, thumbUrl); 其中的share(int, Object…)方法是新版本添加的分享接口,暂时支持微信两个平台的分 享,但后续版本的分享功能会往这个方法迁移。 QQ 空间调用下面的接口更适合其平台特性: ? 1 2 3 4 5 6 String title = “测试分享的标题” String text = “测试分享的文本”; String imageUrl = “[url][/url]测试分享的图片.jpg” AbstractWeibo weibo = AbstractWeibo.getWeibo(context, QZone.NAME); weibo.setWeiboActionListener(waListener); weibo.share(title, null, null, text, imageUrl, &ShareSDK&, &&); 对于接口的详细解释,请参考QQ 登录平台的add_share 接口。 印象笔记的分享内容需要携带笔记标题,因此调用下面的接口更为合适: ? 1 2 3 4 5 6 String title = “测试分享的标题” String text = “测试分享的文本”; String image = “/mnt/sdcard/测试分享的图片.jpg” AbstractWeibo weibo = AbstractWeibo.getWeibo(context, Evernote.NAME); weibo.setWeiboActionListener(waListener); weibo.save(title, text, image); 对于印象笔记,分享的share 接口依然可用,但是更好的接口是save。 执行分享前ShareSDK 会自行判断平台是否已经授权,若未授权,会自行执行授权操作。 信息和邮件分享功能使用send 接口,具体例子如下: ? 1 2 3 4 5 6 7 String address = ”10086”; String title = “测试分享的标题” String text = “测试分享的文本”; String image = “/mnt/sdcard/测试分享的图片.jpg” AbstractWeibo weibo = AbstractWeibo.getWeibo(context, ShortMessage.NAME); weibo.setWeiboActionListener(waListener); ((ShortMessage) weibo).send(address, title, text); 短信的分享只支持SMS 分享,如果直接分享MMS,则分享结果无法获取。至于邮件, 不管分享方式如何,都无法直接获取分享结果。 执行分享前ShareSDK 会自行判断平台是否已经授权,若未授权,会自行执行授权操作。 3-7 关注指定用户 当前的ShareSDK 已经实现了新浪微博和腾讯微博的关注功能,下面的代码演示腾讯微 博的关注操作: ? 1 2 3 4 String account = &shareSDK&; AbstractWeibo weibo = AbstractWeibo.getWeibo( context,TencentWeibo.NAME); weibo.setWeiboActionListener(waListener); weibo.followFriend(account); 执行关注前ShareSDK 会自行判断平台是否已经授权,若未授权,会自行执 行授权操作。 3-8 获取平台数据库 ShareSDK 将每一个平台的授权数据都缓存在SharedPreferences 中,并且相互独立。 如果你希望获取任何一个平台的授权数据,可以像下面这样子做: ? 1 2 3 4 AbstractWeibo weibo = AbstractWeibo.getWeibo(this, TencentWeibo.NAME); String accessToken = weibo.getDb().getToken(); String openId = weibo.getDb().get(&openid&); // 接下来执行你要的操作 不同平台都会缓存access token 等信息,可以通过getToken()或者setToken()进行操 作。此外,开发者还可以通过直接get()某个字段的办法,获取其数据,如上面通过“openid” 字段获取到腾讯微博的openId。 3-8 取消授权 下面的代码演示新浪微博取消授权的操作: ? 1 2 AbstractWeibo weibo = AbstractWeibo.getWeibo(context, SinaWeibo.NAME); weibo.removeAccount(); 此接口不需要WeiboActionListener,所以直接调用即可。
资深电脑人
其他类似问题
为您推荐:
app的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 discuz 开启分享 的文章

 

随机推荐