最新版安卓微信分享sdk接入

来源:互联网 发布:淘宝的临期化妆品 编辑:程序博客网 时间:2024/06/05 13:36

首先最基础的一步就是申请appid(这一步其实很重要)

本人用的开发工具为Eclipse,将下载好的jar包放到 libs 文件夹下,build一下,

一、

分享之前一定要注册  
api = WXAPIFactory.createWXAPI(this, WXConstants.APP_ID,true);api.registerApp(WXConstants.APP_ID);
下面是分享
//---------微信分享调用接口-------------public void shareWeixin(){String webUrl = "http://zongho.com.cn";WXWebpageObject webpage = new WXWebpageObject();webpage.webpageUrl = webUrl;WXMediaMessage msg = new WXMediaMessage(webpage);msg.title = "标题";msg.description ="内容";
Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.share_2);msg.thumbData = Util.bmpToByteArrayWithAll(thumb, true);SendMessageToWX.Req req = new SendMessageToWX.Req();req.transaction = buildTransaction("webpage");req.message = msg;req.scene = SendMessageToWX.Req.WXSceneTimeline;api.sendReq(req);}

二、

sdk文档中会有 一个 接受回调的 WXEntryActivity,严格按照文档创建包名,

  api = WXAPIFactory.createWXAPI(this, WXConstants.APP_ID,true);

//判断微信  Intent返回值 --false说明有其他的Intent应立即finish掉
boolean handleIntent = api.handleIntent(getIntent(), this);
if (handleIntent == false) {
finish();
}

//------------------------------------------------------------------------------------------------------

@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);

setIntent(intent);
api.handleIntent(intent, this);
}

//----------------------------------回调 方法----------------------------

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

Log.i("Tag","请求回调".);

switch (req.getType()) {
case ConstantsAPI.COMMAND_GETMESSAGE_FROM_WX:
goToGetMsg();
break;
case ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX:
goToShowMsg((ShowMessageFromWX.Req) req);
break;
default:
break;
}

}

// 第三方应用发送到微信的请求处理后的响应结果,会回调到该方法
@Override
public void onResp(BaseResp resp) {
Log.i("TAG-02", "回调");

int result = 0;

Toast.makeText(this, "baseresp.getType = " + resp.getType(), Toast.LENGTH_SHORT).show();

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;
case BaseResp.ErrCode.ERR_UNSUPPORT:
result = R.string.errcode_unsupported;
break;
default:
result = R.string.errcode_unknown;
break;
}

Toast.makeText(this, result, Toast.LENGTH_LONG).show();

}



本人接入sdk后的体验:1.第一步极为重要,签名和包名,还有就是打包时的上线的那个 keystore;若这步有问题会造成你在测试时出现调不出微信分享界面,或者就是一闪而过,或者 返回方法里的code为-6。2.在分享成功后返回第三方app时会出现透明界面,这时应该检查 handleIntent的返回值(参考我的二步的第一个方法)。


原创粉丝点击