sharesdk微信分享
目前市面上大大小小的软件,几乎都支持分享的功能,前几天在做的项目中也有此功能,使用的ShareSDK来实现的微信分享功能,下面就跟着我来一步步实现微信分享吧!
ShareSDK介绍:ShareSDK官网,Mob移动开发者服务平台,为全球移动开发者提供社会化分享SDK、手游视频录像SDK、免费手机短信验证码SDK,BigApp掌上社区等服务。
1.在ShareSDK注册个账户,进入创建应用的界面:
点击创建应用按钮
2.输入自己的应用名称,选择开发平台(以Android为例)
3.点击确定,进入后台管理界面,此时已经生成了该应用的App Key和App Secret,这是后面分享必须的。
注:此时在ShareSDK配置已经完成,下面需要到各自分享的平台去申请对应的AppId和AppSecret。
4.进入微信开放平台,点击顶部的管理中心按钮
5.填写应用信息
6.下一步,接着填写信息
这里详细介绍一下签名,此处填写的签名必须和应用发布时的签名保持一致才可以分享,为了保持一致,此处的签名可以这样来产生:
使用命令来生成签名文件,命令如下:keytool -genkey -alias demo.keystore -keyalg RSA -validity 20000 -keystore demo.keystore,cmd命令行直接执行就可以了,至于输入的内容,记住密匙库口令,也就是密码,重复输入两次,输入的过程不会显示!
此时在你执行命令的目录就会生成一个签名文件demo.keystore
右键工程–Export
next—找到你的签名文件—输入生成签名文件时的密码
上面这个图才是关键,看到Certificate fingerprints下有个MD5,咱们要的就是这个,记住这个,就是微信验证时输入的应用签名
把上面的md5那一串数字和字母输入在上图的应用签名一栏就可以了!!!
7.提交审核就Ok了,耐心等待,说是7天内,一般一两天就审核通过了!
8.过个一两天应用审核通过,在管理中心可以看到应用已经审核通过。
9.点击查看,可进入应用后台管理页面,可以看到,已经生成了我们分享所需要的AppId和AppSecret.
10.下面就是代码实现分享功能了,我们一步步来看,首先看一下工程结构图,在libs目录下导入分享所需要的jar包,在assets目录下,复制ShareSDK.xml,这是分享的配置文件,至于如何获取jar和ShareSDK.xml,请点击:Android快速集成指南。
11.打开ShareSDK.xml文件,输入shareSdk的APPKey,和已经在微信开放平台申请到的APPID和AppSecret。
12.代码实现分享功能,首先在onCreate方法中初始化ShareSDK。
01.
<code
class
=
"hljs java"
>
@Override
02.
protected
void
onCreate(Bundle savedInstanceState)
03.
{
04.
super
.onCreate(savedInstanceState);
05.
setContentView(R.layout.activity_main);
06.
//初始化ShareSDK
07.
ShareSDK.initSDK(MainActivity.
this
);
08.
initView();
09.
}</code>
13.封装分享的方法,微信支持四种分享类型,文本,图片,音乐,网页。
01.
<code
class
=
"hljs java"
><code
class
=
"hljs java"
>
/**
02.
* 方法名称:xinWeiShare
03.
* <p>方法描述:微信分享
04.
* @param isWeiXin true为微信 false为微信朋友圈
05.
* @param handler 分享界面回调 不能为空
06.
* @param context 分享界面mContext
07.
* @param type 分享类型 如:Platform.SHARE_TEXT,Platform.SHARE_IMAGE,Platform.SHARE_MUSIC,Platform.SHARE_WEBPAGE
08.
* @param args 分享类型 如Platform.SHARE_TEXT(微信文本类型) 必须传入 两个参数(不能少传,也不能多传) :第一个为标题
09.
* 第二个为分享内容
10.
*
11.
* 分享类型 如Platform.SHARE_IMAGE(微信图片类型) 必须传入 两个参数(不能少传,也不能多传):第一个为标题
12.
* 第二个为分享图片 URL地址 或者 手机文件地址
13.
*
14.
* 分享类型 如Platform.SHARE_MUSIC(微信音乐分享) 必须传入 五个参数(不能少传,也不能多传):第一个为标题
15.
* 第二个为分享内容
16.
* 第三个为分享图片地址 URL地址 或者 手机文件地址
17.
* 第四个为分享音乐地址(必须携带http:// 或者 https://)
18.
* 第五个为分享音乐详细地址(必须携带http:// 或者 https://)
19.
*
20.
* 分享类型 如Platform.SHARE_WEBPAGE(微信网页链接分享) 必须传入四个参数(不能少传,也不能多传): 第一个为标题
21.
* 第二个为分享内容
22.
* 第三个为分享网页图片地址 URL地址 或者 手机文件地址
23.
* 第四个为分享网页的地址 (必须携带http:// 或者 https://)
24.
* <p>备注:
25.
*/
26.
public
void
weiXinShare(
boolean
isWeiXin, Handler handler, Context mContext,
int
type, String... args)
27.
{
28.
switch
(type)
29.
{
30.
case
Platform.SHARE_TEXT:
31.
if
(
null
!= handler)
32.
{
33.
this
.mHandler = handler;
34.
weixinTxtShare(isWeiXin, mContext, args);
35.
}
36.
//微信文本分享
37.
break
;
38.
case
Platform.SHARE_IMAGE:
39.
//微信图片分享
40.
if
(
null
!= handler)
41.
{
42.
this
.mHandler = handler;
43.
weiXinImgShare(isWeiXin, mContext, args);
44.
}
45.
break
;
46.
case
Platform.SHARE_MUSIC:
47.
//分享音乐
48.
if
(
null
!= handler)
49.
{
50.
this
.mHandler = handler;
51.
weixinMusicShare(isWeiXin, mContext, args);
52.
}
53.
break
;
54.
case
Platform.SHARE_WEBPAGE:
55.
//分享网页
56.
if
(
null
!= handler)
57.
{
58.
this
.mHandler = handler;
59.
weiXinWebShare(isWeiXin, mContext, args);
60.
}
61.
break
;
62.
default
:
63.
break
;
64.
}
65.
}</code></code>
14.此处测试的是分享网页,分享网页的方法如下:
01.
<code
class
=
"hljs java"
><code
class
=
"hljs java"
><code
class
=
"hljs java"
>
/**
02.
* 方法名称:xinweiWebShare
03.
* <p>方法描述:网页分享
04.
* <p>备注:
05.
*/
06.
private
void
weiXinWebShare(
boolean
isWeixin, Context mContext, String... args)
07.
{
08.
if
(
null
== mContext || args.length < SHARE_WEB_MIN_LEN)
09.
{
10.
MainApplication.getIns().tip(
'分享失败'
);
11.
return
;
12.
}
13.
else
14.
{
15.
this
.context = mContext;
16.
for
(
int
i =
0
; i < args.length; i++)
17.
{
18.
String str = args[i];
19.
if
(TextUtils.isEmpty(str) && i !=
2
)
20.
{
21.
MainApplication.getIns().tip(
'分享失败'
);
22.
return
;
23.
}
24.
}
25.
String title = args[
0
];
26.
String text = args[
1
];
27.
String image = args[
2
];
28.
String url = args[
3
];
29.
WechatHelper.ShareParams sp =
null
;
30.
if
(isWeixin)
31.
{
32.
sp =
new
Wechat.ShareParams();
33.
}
34.
else
35.
{
36.
sp =
new
WechatMoments.ShareParams();
37.
}
38.
sp.title = title;
39.
40.
if
(TextUtils.isEmpty(image))
41.
{
42.
sp.imageData = ((BitmapDrawable)context.getResources().getDrawable(R.drawable.logo_mingdao)).getBitmap();
43.
}
44.
else
if
(image.contains(
'http://'
) || image.contains(
'https://'
))
45.
{
46.
sp.imageUrl = image;
47.
}
48.
sp.text = text;
49.
if
(url.contains(
'http://'
) || url.contains(
'https://'
))
50.
{
51.
sp.url = url;
52.
}
53.
sp.setShareType(Platform.SHARE_WEBPAGE);
54.
Platform plat =
null
;
55.
if
(isWeixin)
56.
{
57.
plat = ShareSDK.getPlatform(Wechat.NAME);
58.
}
59.
else
60.
{
61.
plat = ShareSDK.getPlatform(WechatMoments.NAME);
62.
}
63.
plat.setPlatformActionListener(listener);
64.
plat.share(sp);
65.
}
66.
}</code></code></code>
15.具体的分享调用
01.
<code
class
=
"hljs java"
><code
class
=
"hljs java"
><code
class
=
"hljs java"
><code
class
=
"hljs java"
>
/**
02.
* 方法名称:weixinShare
03.
* 方法描述:微信分享
04.
*/
05.
private
void
weixinShare()
06.
{
07.
String shareContentTxt =
'我是来自<a href="http://www.it165.net/pro/ydad/" target="_blank" class="keylink">Android</a>客户端分享实例Demo的数据'
;
08.
String sharklink =
'http://user.qzone.qq.com/1039163285/infocenter?ptsig=*Sb6sER-9smBstwyL28cYg2h0D99pYGcPvoySuzkGyc_'
;
09.
ShareUtil.getInstance().weiXinShare(
true
, mHandler,
this
, Platform.SHARE_WEBPAGE,
'Note客户端分享'
, shareContentTxt,
''
, sharklink);
10.
}
11.
12.
/**
13.
* 方法名称:weixinQuanShare
14.
* 方法描述:微信朋友圈分享
15.
*/
16.
private
void
weixinQuanShare()
17.
{
18.
String shareContentTxt =
'我是来自<a href="http://www.it165.net/pro/ydad/" target="_blank" class="keylink">Android</a>客户端分享实例Demo的数据,如果您看到此条数据,可以选择忽略它!'
;
19.
String sharklink =
'http://user.qzone.<;a href="http://www.it165.net/qq/" target="_blank" class="keylink">qq</a>.com/1039163285/infocenter?ptsig=*Sb6sER-9smBstwyL28cYg2h0D99pYGcPvoySuzkGyc_'
;
20.
ShareUtil.getInstance().weiXinShare(
false
, mHandler,
this
, Platform.SHARE_WEBPAGE, shareContentTxt,
'Note客户端分享'
,
''
, sharklink);
21.
}</code></code></code></code>
16.分享完成,测试
分享成功
sharesdk微信分享相关推荐
- android sdk引入 微信分享_Android分享 ShareSDK微信分享详解
本文转载自: http://www.it165.net/pro/html/201508/50793.html (只作转载, 不代表本站和博主同意文中观点或证实文中信息) 目前市面上大大小小的软件,几乎 ...
- shareSDK 微信分享闪退问题
微信与其他应用不同,集成了shareSDK后,其他的都好使,为什么就微信的不好使,无论是分享给好友,还是朋友圈,都出现闪退的情况,楼主同样遇到了这种情况. 微信分享闪退有种情况: 1,你没有打包成.a ...
- 【Android 分享】ShareSDK微信分享详解
目前市面上大大小小的软件,几乎都支持分享的功能,前几天在做的项目中也有此功能,使用的ShareSDK来实现的微信分享功能,下面就跟着我来一步步实现微信分享吧! ShareSDK介绍:ShareSDK官 ...
- ShareSDK微信分享BUG
用ShareSDK做微信分享,有一些内容没有图片,所以没有传图片地址,结果分享出去的就只有纯文字.特此记录一下.
- shareSDK 微信分享的时候只能分享jpg格式的图片大于32k时为什么分享不出去?
最新下了9.0的下shareSDK的来做iOS app社交分享,发现当分享到微信上的时候,图片如果是.png格式的话,功能是正常的,但其他格式的图片大于32k时就会分享不成功, 转载于:https:/ ...
- ShareSDK微信分享时的坑
/** * * @param context * @param title 标题 * @param text 标题下面右边文字 * @param imagePath 标题下面左边图片 * @param ...
- 在Unity3D项目中接入ShareSDK实现安卓平台微信分享功能(可使用ShareSDK默认UI或自定义UI)...
最近公司的大厅要重做,我协助主程一起制作新大厅和新框架,前面制作的编辑器也派上了用场.等全部功能做完后我会再写一个复盘,这两天主程在忙于写热更新的功能,所以把接入分享SDK功能的任务交给了我,Shar ...
- ShareSDK接入实现微信分享功能(转)
ShareSDK接入实现微信分享功能 首先需要去Mob官网(http://www.mob.com/)下载shareSDK For Unity3d 下载完成,解压,将以下plugins文件夹移入Unit ...
- ShareSDK关于微信分享问题
转自:http://www.eoeandroid.com/thread-310281-1-1.html 发现用sharesdk,做其他平台分享很快:如新浪微博.腾讯微博.有道云笔记.开心网.Googl ...
最新文章
- linux mysql cpu 高,Linux系统中关于Mysql数据库导致CPU很高的问题解决
- socket 编程入门教程(一)TCP server端:3、sockaddr与sockaddr_in
- bzoj4027,[HEOI2015]兔子与樱花
- python——学习笔记3
- git log 迁移_现场故事:从Log4J迁移到Log4J2
- WOJ 18 动态无向图
- 最大化最小值 | | 最小化最大值
- vue-cli 2.6.9 安装卸载及创建一个工程
- 通过QQ 2012 客户端协议获取clientkey的0x30数据包分析
- Caused by: javax.security.auth.login.LoginException: unable to find LoginModule class: com.ibm.secur
- 手动制作解除U盘写保护文件
- 命令提示符cmd以管理员身份运行的快捷键
- Pest incidence forecasting based on Internet of Things and Long Short-Term Memory Network 论文精读
- Carte作为Windows服务
- 给oracle数据库现有表添加字段
- FFmpeg入门详解之124:Qt5 FFmpeg单路网络摄像头采集预览
- Xcode中mark标注使用方法
- Ubuntu 18.04 其他镜像的刻录
- Java 计算一段代码运行的时间
- Maxscale实现MySQL读写分离