一,去微信开发者平台申请appId
二,as集成。
1.添加依赖
compile 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'
2.创建一个名叫wxapi的package,创建一个WXEntryActivity的类,用于接收分享之后的回调。
package com.bankcomm.jrt.wxapi; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import com.tencent.mm.opensdk.modelbase.BaseReq; import com.tencent.mm.opensdk.modelbase.BaseResp; import com.tencent.mm.opensdk.openapi.IWXAPI; import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler; import com.tencent.mm.opensdk.openapi.WXAPIFactory; public class WXEntryActivity extends Activity implements IWXAPIEventHandler { private static final String APP_ID = "wx1111111111111111"; public static IWXAPI api; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); api = WXAPIFactory.createWXAPI(this, APP_ID, false); try { api.handleIntent(getIntent(), this); } catch (Exception e) { e.printStackTrace(); } } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); setIntent(intent); api.handleIntent(intent, this); } @Override public void onReq(BaseReq req) { } @Override public void onResp(BaseResp resp) { //处理不同的返回结果 finish(); } }
3.调用分享,现在要实现分享的页面,注册微信api
public static IWXAPI iwxapi; iwxapi = WXAPIFactory.createWXAPI(getContext(),APP_ID,true); iwxapi.registerApp(APP_ID);
4.分享
private void share(boolean shareToWhere) { WXWebpageObject webpage = new WXWebpageObject(); webpage.webpageUrl = mForwardMessage.getUrl(); WXMediaMessage msg = new WXMediaMessage(webpage); msg.title = "标题"; msg.description = "详情"); Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.message_icon_weblink_card); 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("webpage"); req.message = msg; req.scene = shareToWhere?SendMessageToWX.Req.WXSceneSession:SendMessageToWX.Req.WXSceneTimeline; iwxapi.sendReq(req); }
public static byte[] bmpToByteArray(final Bitmap bmp, final boolean needRecycle) { ByteArrayOutputStream output = new ByteArrayOutputStream(); bmp.compress(Bitmap.CompressFormat.PNG, 100, output); if (needRecycle) { bmp.recycle(); } byte[] result = output.toByteArray(); try { output.close(); } catch (Exception e) { e.printStackTrace(); } return result; }