android开发android 微信分享回调链接怎么弄

24099人阅读
Android入门(7)
由于需求,要实现在应用中实现分享文字+图片到微信朋友圈。在网上找了一些资料,总结如下:
1.使用android的intent实现应用程序之间的通信,将信息通过intent传递给微信(文章后面资源链接中有案例)。这种方式的局限性在于
a.只能发送图片,而不是(文字或者图片+文字)。
b.设备必须安装微信才能实现分享。
2.使用微信的官方sdk包,实现发送文字+图片发送到朋友圈。这种方式不需要设备安装微信。
3.使用第三方的分享工具,比如shareSDK。这种方式最强大(支持多种社交平台)。并且不要求设备安装微信。
使用intent实现分享到朋友圈(只能实现分享图片,不支持文字的分享)/thread--1.html?_dsign=23fd2fc1
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:514043次
积分:5097
积分:5097
排名:第5503名
原创:87篇
转载:29篇
评论:61条Android实现微信分享及注意事项
一、获取帮助文档并下载相关资料首先打开微信开放平台:https://open./ 如果没有注册,请先注册并上传开发者资料等待审核。资源中心----移动应用开发----分享与收藏功能----开发手册开发手册链接地址:https://open./zh_CN/htmledition/res/dev/document/sdk/android/index.html资源中心----移动应用开发----接入指南---Android接入指南(下面我们主要参考这个)二、接入微信分享功能1、申请AppID如何现在没有AppID可以先下载官方的Demo使用Demo中的AppID即可。SDK和Demo下载地址:https://open./cgi-bin/frame?t=resource/res_main_tmpl&verify=1&lang=zh_CN&target=res/app_download_android开发工具包(SDK)使用微信分享、登录、收藏、支付等功能需要的库以及文件。点击下载 Android开发工具包使用微信语音识别接口、语音合成接口。点击下载 语音SDK+Demo+开发文档使用微信图像识别接口。点击下载 图像SDK+Demo+开发文档使用微信卡券功能接口。点击下载 卡券SDK+开发文档范例代码包含了一个完整的范例工程。该范例的使用可以参阅Android平台上手指南:HelloWeixin@Android。点击下载签名生成工具用于获取安装到手机的第三方应用签名的apk包。点击下载 签名生成工具下载完成后我们可以参考一下Demo来集成。2、下载微信开发工具包(在上面已经下载)3、开始搭建开发环境然后将libammsdk.jar文件拷贝到工程lib目录下。注意:如果使用的是Demo中的AppID则包名一定要先和Demo的包名一致,否则分享会出错。4、新建一个Activity在里面放置一个按钮vcD48cD48cHJlIGNsYXNzPQ=="brush:">package net.sourceforge.
import android.app.A
import android.os.B
import android.view.V
import android.view.View.OnClickL
import android.widget.B
import com.example.weixinsharedemo.share.WeixinShareM
public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.share_weibo);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
WeixinShareManager wsm = WeixinShareManager.getInstance(MainActivity.this);
wsm.shareByWeixin(wsm.new ShareContentPic(R.drawable.ic_launcher),
WeixinShareManager.WEIXIN_SHARE_TYPE_TALK);
4、开始创建我们的分享逻辑类并实现需要的分享功能package com.example.weixinsharedemo.
import android.content.C
import android.graphics.B
import android.graphics.BitmapF
import android.widget.T
import com.example.weixinsharedemo.util.WeixiShareU
import com.tencent.mm.sdk.modelmsg.SendMessageToWX;
import com.tencent.mm.sdk.modelmsg.WXImageO
import com.tencent.mm.sdk.modelmsg.WXMediaM
import com.tencent.mm.sdk.modelmsg.WXTextO
import com.tencent.mm.sdk.modelmsg.WXWebpageO
import com.tencent.mm.sdk.openapi.IWXAPI;
import com.tencent.mm.sdk.openapi.WXAPIF
* 实现微信分享功能的核心类
* @author Administrator
public class WeixinShareManager{
private static final int THUMB_SIZE = 150;
public static final int WEIXIN_SHARE_WAY_TEXT = 1;
public static final int WEIXIN_SHARE_WAY_PIC = 2;
public static final int WEIXIN_SHARE_WAY_WEBPAGE = 3;
public static final int WEIXIN_SHARE_TYPE_TALK = SendMessageToWX.Req.WXSceneS
public static final int WEIXIN_SHARE_TYPE_FRENDS = SendMessageToWX.Req.WXSceneT
private static WeixinShareM
private static String weixinAppId;
private IWXAPI wxA
private WeixinShareManager(Context context){
this.context =
//初始化数据
weixinAppId = WeixiShareUtil.getWeixinAppId(context);
//初始化微信分享代码
if(weixinAppId != null){
initWeixinShare(context);
* 获取WeixinShareManager实例
* 非线程安全,请在UI线程中操作
public static WeixinShareManager getInstance(Context context){
if(instance == null){
instance = new WeixinShareManager(context);
private void initWeixinShare(Context context){
wxApi = WXAPIFactory.createWXAPI(context, weixinAppId, true);
wxApi.registerApp(weixinAppId);
* 通过微信分享
* @param shareWay 分享的方式(文本、图片、链接)
* @param shareType 分享的类型(朋友圈,会话)
public void shareByWeixin(ShareContent shareContent, int shareType){
switch (shareContent.getShareWay()) {
case WEIXIN_SHARE_WAY_TEXT:
shareText(shareType, shareContent);
case WEIXIN_SHARE_WAY_PIC:
sharePicture(shareType, shareContent);
case WEIXIN_SHARE_WAY_WEBPAGE:
shareWebPage(shareType, shareContent);
private abstract class ShareContent{
protected abstract int getShareWay();
protected abstract String getContent();
protected abstract String getTitle();
protected abstract String getURL();
protected abstract int getPicResource();
* 设置分享文字的内容
* @author Administrator
public class ShareContentText extends ShareContent{
* 构造分享文字类
* @param text 分享的文字内容
public ShareContentText(String content){
this.content =
protected String getContent() {
protected String getTitle() {
protected String getURL() {
protected int getPicResource() {
return -1;
protected int getShareWay() {
return WEIXIN_SHARE_WAY_TEXT;
* 设置分享图片的内容
* @author Administrator
public class ShareContentPic extends ShareContent{
private int picR
public ShareContentPic(int picResource){
this.picResource = picR
protected String getContent() {
protected String getTitle() {
protected String getURL() {
protected int getPicResource() {
return picR
protected int getShareWay() {
return WEIXIN_SHARE_WAY_PIC;
* 设置分享链接的内容
* @author Administrator
public class ShareContentWebpage extends ShareContent{
private int picR
public ShareContentWebpage(String title, String content,
String url, int picResource){
this.title =
this.content =
this.url =
this.picResource = picR
protected String getContent() {
protected String getTitle() {
protected String getURL() {
protected int getPicResource() {
return picR
protected int getShareWay() {
return WEIXIN_SHARE_WAY_WEBPAGE;
* 分享文字
private void shareText(int shareType, ShareContent shareContent) {
String text = shareContent.getContent();
//初始化一个WXTextObject对象
WXTextObject textObj = new WXTextObject();
textObj.text =
//用WXTextObject对象初始化一个WXMediaMessage对象
WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject = textO
msg.description =
//构造一个Req
SendMessageToWX.Req req = new SendMessageToWX.Req();
//transaction字段用于唯一标识一个请求
req.transaction = buildTransaction("textshare");
req.message =
//发送的目标场景, 可以选择发送到会话 WXSceneSession 或者朋友圈 WXSceneTimeline。 默认发送到会话。
req.scene = shareT
wxApi.sendReq(req);
* 分享图片
private void sharePicture(int shareType, ShareContent shareContent) {
Bitmap bmp = BitmapFactory.decodeResource(context.getResources(), shareContent.getPicResource());
WXImageObject imgObj = new WXImageObject(bmp);
WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject = imgO
Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, THUMB_SIZE, THUMB_SIZE, true);
bmp.recycle();
msg.thumbData = WeixiShareUtil.bmpToByteArray(thumbBmp, true);
//设置缩略图
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("imgshareappdata");
req.message =
req.scene = shareT
wxApi.sendReq(req);
* 分享链接
private void shareWebPage(int shareType, ShareContent shareContent) {
WXWebpageObject webpage = new WXWebpageObject();
webpage.webpageUrl = shareContent.getURL();
WXMediaMessage msg = new WXMediaMessage(webpage);
msg.title = shareContent.getTitle();
msg.description = shareContent.getContent();
Bitmap thumb = BitmapFactory.decodeResource(context.getResources(), shareContent.getPicResource());
if(thumb == null){
Toast.makeText(context, "图片不能为空", Toast.LENGTH_SHORT).show();
msg.thumbData = WeixiShareUtil.bmpToByteArray(thumb, true);
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("webpage");
req.message =
req.scene = shareT
wxApi.sendReq(req);
private String buildTransaction(final String type) {
return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();
上面只是实现了文字、图片、链接的分享功能,如需分享视频、音频可以添加。5、实现分享结果反馈要实现分享结果的反馈,微信已经将结果的处理封装到了WXEntryActivity中(jar包中),所以我们要继承该类获取反馈结果。在你的包名相应目录下新建一个wxapi目录,并在该wxapi目录下新增一个WXEntryActivity类,该类继承自Activity(例如应用程序的包名为net.sourceforge.simcpux,则新添加的类如下图所示)package net.sourceforge.simcpux.
import com.example.weixinsharedemo.share.WXCallbackA
public class CallBackActivity extends WXCallbackActivity{
public void weixinResp(int respCode) {
System.out.println("respCode = " + respCode);
}注意:记得去Mainfest文件中注册Activity
三、运行代码使用Demo中AppId的朋友在这里要注意,请设置一下签名文件(在上面下载的SDK中有)如下:点击Browser进行选择,运行即可。如果有什么问题请在下面留言,也可以加博客旁边的QQ群()进行详细交流。另外可以关注一下我的阳光小栈(www.)。如何修改微信朋友圈分享链接后的小图标? - 知乎136被浏览85806分享邀请回答mp./wiki/7/aaa137b55fb2e48dd613f.html-& 注意:
WeixinJSBridge在新版本的微信用已经没有了,所以看到这类的文章可以直接pass掉。文档写的很全面,自己研究吧~以下内容已过期,正在寻找新的案例 -& 请见
这是艺龙网的春节红包,妹子喜欢发各种红包就随便拿了一个,在任何浏览器上查看,调用开发者工具查看源码,会看到分享接口的调用。可以在微信浏览器上查看(网址通过网页版微信发到自己微信上打开),体验分享功能。这个文档很全面,语音识别,付款,定位,也可以控制微信右上角菜单显示。3220 条评论分享收藏感谢收起的效果219 条评论分享收藏感谢收起查看更多回答1 个回答被折叠()> 博客详情
开发中分享操作往往经常遇到,而且还是一些比较大型一定的平台,如微信,QQ,微博等。写这篇博客主要是把微信的的分享和相关操作表达一下,分享可以包含:文字,视频,音乐,图片等分享。
分享可以有 分享给好友,群,朋友圈等。
效果如下图:(注意:功能根据自己的需要选择就可以了)
&&&&&&&&&&&&
准备工作:
微信开放平台创建应用,操作步骤请看博客:
成功之后得到AppId,放入项目中。
public class Constants {
// APP_ID 替换为你的应用从官方网站申请到的合法appId==
public static final String APP_ID = "wx1b73fd7b49ffa027";
public static class ShowMsgActivity {
public static final String STitle = "showmsg_title";
public static final String SMessage = "showmsg_message";
public static final String BAThumbData = "showmsg_thumb_data";
public class AppRegister extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
final IWXAPI api = WXAPIFactory.createWXAPI(context, null);
// 将该app注册到微信
api.registerApp(Constants.APP_ID);
文本分享代码:
// 初始化一个WXTextObject对象
WXTextObject textObj = new WXTextObject();
textObj.text =
// 用WXTextObject对象初始化一个WXMediaMessage对象
WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject = textO
// 发送文本类型的消息时,title字段不起作用
msg.title = "Will be ignored";
msg.description =
// 构造一个Req
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("text"); // transaction字段用于唯一标识一个请求
req.message =
* 判断是否是朋友圈
req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneS
// 调用api接口发送数据到微信
api.sendReq(req);
图片分享代码:(包含 本地图片,SD卡图片,网络图片)
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.send_img);
WXImageObject imgObj = new WXImageObject(bmp);
WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject = imgO
Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, THUMB_SIZE, THUMB_SIZE, true);
bmp.recycle();
msg.thumbData = Util.bmpToByteArray(thumbBmp, true);
// 设置所图;
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("img");
req.message =
req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneS
api.sendReq(req);
音乐分享代码
WXMusicObject music = new WXMusicObject();
music.musicUrl="http://staff2./~wdw/softdown/index.asp/.ANDY.mp3";
WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject =
msg.title = "标题";
msg.description = "描述信息";
Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.send_music_thumb);
msg.thumbData = Util.bmpToByteArray(thumb, true);
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("music");
req.message =
req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneS
api.sendReq(req);
视频分享代码
WXVideoObject video = new WXVideoObject();
video.videoUrl = "url....mp4";//mp4视频路径
WXMediaMessage msg = new WXMediaMessage(video);
msg.title = "标题";
msg.description = "描述信息";
Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.send_music_thumb); msg.thumbData = Util.bmpToByteArray(thumb, true); SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = buildTransaction("video"); req.message = req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneS api.sendReq(req);
网页分享代码:
WXWebpageObject webpage = new WXWebpageObject();
webpage.webpageUrl = "";
WXMediaMessage msg = new WXMediaMessage(webpage);
msg.title = "标题";
msg.description = "描述信息";
Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.send_music_thumb);
msg.thumbData = Util.bmpToByteArray(thumb, true);
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("webpage");
req.message =
req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneS
api.sendReq(req);
人打赏支持
码字总数 91632
支付宝支付
微信扫码支付
打赏金额: ¥
已支付成功
打赏金额: ¥Android 寰?俊鍒嗕韩鎿嶄綔鍚

我要回帖

更多关于 android微信分享 的文章

 

随机推荐