集成微信,实现分享
前言:集成微信相对微博什么的要简单,审核也很快(3个小时就通过了,运气真好)
1,去微信开放平台,注册自己的应用,获取APP_ID
2,下载集成开发包
3,手机需要安装微信客户端
微信即使不通过审核,也是可以测试的,分享后会显示来自没有审核的应用
将libammsdk.jar放到libs文件夹下
demo里面有个util.java的工具类,直接拿到自己项目里面用
下面是代码:
public class MainActivity extends Activity implements IWXAPIEventHandler {
private Button share_btn;
public static final String APP_ID = "APP_ID去开放平台copy过来";//这里是注册APP_ID
private static final String text = "需要分享的文字";
private IWXAPI api;
private static final int THUMB_SIZE_W = 150;//分享图片的参数
private static final int THUMB_SIZE_H = 120;
private void regToWx() {
// TODO Auto-generated method stub
api = WXAPIFactory.createWXAPI(this, APP_ID, true);// 获取IwXApi实例
api.registerApp(APP_ID);// 注册到微信
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
regToWx();
share_btn = (Button) findViewById(R.id.share_btn);
share_btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (!api.isWXAppInstalled()) {
Toast.makeText(MainActivity.this, "您没有安装微信",
Toast.LENGTH_SHORT).show();
// finish();
}
//分享连接(图片和文字)
WXWebpageObject webpage = new WXWebpageObject();
webpage.webpageUrl = "(分享的网址)";
//分享图片
Bitmap img = BitmapFactory.decodeResource(getResources(), R.drawable.loding);
WXImageObject imgObj = new WXImageObject(img);
//分享文字
WXTextObject wxTextobj = new WXTextObject();
wxTextobj.text = text;
WXMediaMessage msg = new WXMediaMessage();
msg.title = text;
msg.mediaObject=webpage;//分享网页
// msg.mediaObject = imgObj;//设置分享图片
// msg.mediaObject = wxTextobj;//分享文字
msg.description = "添加描述文字";
Bitmap thumbBmp = Bitmap.createScaledBitmap(img, THUMB_SIZE_W,
THUMB_SIZE_H, true);
img.recycle();
msg.thumbData = Util.bmpToByteArray(thumbBmp, true);
// 构造一个Req
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction=String.valueOf(System.currentTimeMillis());
req.message = msg;
// req.scene = SendMessageToWX.Req.WXSceneTimeline;//发送至朋友圈
req.scene = SendMessageToWX.Req.WXSceneSession;// 默认(发送到消息会话)
// api.getWXAppSupportAPI();
// 调用api接口发送到微信
api.sendReq(req);
}
});
// api.handleIntent(this.getIntent(), MainActivity.this);
}
@Override
public void onReq(BaseReq req) {
// TODO Auto-generated method stub
System.out.println("req=" + req.getType());
}
@Override
public void onResp(BaseResp resp) {
// TODO Auto-generated method stub
System.out.println("resp=" + resp.errCode);
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();
}
}