找回密码

碧海潮声大学生网

查看: 199|回复: 0
打印 上一主题 下一主题

微信分享功能详解

[复制链接]
跳转到指定楼层
1#
发表于 2015-3-13 09:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
.需要的key,通过创建应用,去通过微信的审核。
2.填写平台信息,需要的签名去获取。然后就是下面的具体步骤了。
3.下载开发工具的jar. 这里面的jar也要部署到项目当中去拉
----------------------------------- 1、执行分享的操作的方法 --------------------------------------------------------------------------------------
一、在编码之前请一定将【微信的提供的 libammsdk.jar 导入 libs文件夹中解压】

public class ShareAppDialog_T extends Dialog implements android.view.View.OnClickListener,
OnTouchListener {

// 发送的目标场景,WXSceneSession表示发送到会话
private static final int WXSceneSession = 0;

// 发送的目标场景,WXSceneTimeline表示发送朋友圈
private static final int WXSceneTimeline = 1;
private IWXAPI api;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);

// 注册微信sdk
api = WXAPIFactory.createWXAPI(getContext(), Constants.APP_ID, true);
api.registerApp(Constants.APP_ID);

}

@Override
public void onClick(View v) {
int id = v.getId();
switch (id) {
case 分享到微信好友:
sendWxUrl(WXSceneSession);
break;

cas 分享到微信朋友圈:
sendWxUrl(WXSceneTimeline);
break;
}

/**
* 此方法是写的分享链接,如果朋友想要分享【图片,文字,等其他可下载微信官方Demo,SendToWXActivity.java类中写的很清楚】
* @param scene 0代表好友 1代表朋友圈
*/
public void sendWxUrl(int scene){

WXWebpageObject webpage = new WXWebpageObject();
webpage.webpageUrl = getContext().getResources().getString(R.string.share_url);;
WXMediaMessage msg = new WXMediaMessage(webpage);
msg.title = getContext().getResources().getString(R.string.share_title);
msg.description = getContext().getResources().getString(R.string.share_content);
Bitmap thumb = BitmapFactory.decodeResource(getContext().getResources(), R.drawable.icon);
msg.thumbData = MMAlert.bmpToByteArray(thumb, true);

SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction(webpage);
req.message = msg;
if (scene == 0) {
// 分享到微信会话
req.scene = SendMessageToWX.Req.WXSceneSession;
} else {
// 分享到微信朋友圈
req.scene = SendMessageToWX.Req.WXSceneTimeline;
}
api.sendReq(req);


this.dismiss(); // 由于我这个类是一个Dialog, 如果你的类是Activity请调用 finish();


}

// 过滤发送内容格式
private String buildTransaction(final String type) {
return (type == null) ? String.valueOf(System.currentTimeMillis())
: type + System.currentTimeMillis();
}


}

---------------------------------------- 2、想要实现【微信的回调】(即分享状态) ------------------------------------------------------------------------------

一、必须在你的工程中新建一个以 【.wxapi】 的包例如: com.boco.huipai.user.wxapi

二、在包中新建一个Activity,【类名必须叫 WXEntryActivity 】

三、当前 Activity 必须实现【微信的 IWXAPIEventHandler 】


四、WXEntryActivity 类的layout布局文件不用做任何编码

五、WXEntryActivity 中代码实现

package com.boco.huipai.user.wxapi;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Window;
import android.widget.Toast;

import com.boco.huipai.user.Constants;
import com.boco.huipai.user.R;
import com.tencent.mm.sdk.openapi.BaseReq;
import com.tencent.mm.sdk.openapi.BaseResp;
import com.tencent.mm.sdk.openapi.IWXAPI;
import com.tencent.mm.sdk.openapi.IWXAPIEventHandler;
import com.tencent.mm.sdk.openapi.WXAPIFactory;

public class WXEntryActivity extends Activity implements IWXAPIEventHandler{

private IWXAPI api;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
// 注册微信sdk
api = WXAPIFactory.createWXAPI(this, Constants.APP_ID, true);
api.registerApp(Constants.APP_ID);
api.handleIntent(getIntent(), this);
}

/**
* 微信发送请求到第三方应用时,会回调到该方法
*/
@Override
public void onReq(BaseReq req) {

}
/**
* 第三方应用发送到微信的请求处理后的响应结果,会回调到该方法
*/
@Override
public void onResp(BaseResp resp) {
int result = 0;
switch (resp.errCode) {
case BaseResp.ErrCode.ERR_OK: // 分享成功
result = R.string.errcode_success;
break;
case BaseResp.ErrCode.ERR_USER_CANCEL:// 取消分享
result = R.string.errcode_cancel;
break;
case BaseResp.ErrCode.ERR_AUTH_DENIED:// // 分享失败
result = R.string.errcode_deny;
break;
default:
result = R.string.errcode_unknown;
break;
}
Toast.makeText(this, result, Toast.LENGTH_LONG).show();
finish();
}
}



六、AndroidManifest.xml 文件注册 WXEntryActivity


【注意:android:exported=true 必须配置】


android:name=com.boco.huipai.user.wxapi.WXEntryActivity
android:exported=true>
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 顶 踩
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋| 碧海潮声大学生网  

Copyright © 2001-2013 Comsenz Inc.   All Rights Reserved.

Powered by Discuz! X3.2( 浙ICP备11026473号 )

快速回复 返回顶部 返回列表