1,
interface IWXAPI:微信OpenAPI访问入口,由Class WXAPIFactory实例化
实例化:createWXAPI(Context context, java.lang.String appId)
;
createWXAPI(Context context, java.lang.String appId, boolean checkSignature);
IWXAPI 提供的方法有:获取当前安装的微信的api level,是否安装了微信,启动微信,注册3rd app到微信,以及反注册等。最重要的两个方法是:sendReq(BaseReq req)
和 sendResp(BaseResp resp)
2,sendReq(BaseReq req)
和 sendResp(BaseResp resp)
sendReq(BaseReq req):3rd app 发送请求到微信
sendResp(BaseResp resp) 微信向第三方app请求数据,第三方app回应数据之后会切回到微信界面。
微信界面“+”在onReq()中对应的 req.getType() ConstantsAPI.COMMAND_GETMESSAGE_FROM_WX:
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.send_img);
WXImageObject imgObj = new WXImageObject(bmp);
WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject = imgObj;
// 设置消息的缩略图
Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, THUMB_SIZE, THUMB_SIZE, true);
bmp.recycle();
msg.thumbData = Util.bmpToByteArray(thumbBmp, true);
GetMessageFromWX.Resp resp = new GetMessageFromWX.Resp();
resp.transaction = getTransaction();
resp.message = msg;
api.sendResp(resp);
3.
Interface IWXAPIEventHandler 是微信向3rd app请求和3rd app向微信请求后微信给于反馈的接口。onReq()用于微信请求,onResp()用于反馈。可以用一个BroadcastReceiver实现这个接口。也可以在WXEnterActivity中用代码注册,只需api.handleIntent(getIntent(), this);WXEnterActivity 实现 IWXAPIEventHandler 。
4,
BaseReq:请求的基类
已实现的子类:GetMessageFromWX.Req, SendAuth.Req, SendMessageToWX.Req, ShowMessageFromWX.Req
BaseResp:响应的基类
已实现的子类:GetMessageFromWX.Resp, SendAuth.Resp, SendMessageToWX.Resp, ShowMessageFromWX.Resp
5,请求或者响应时可能会带 WXMediaMessage,一个 WXMediaMessage 可以携带一个 WXMediaMessage.IMediaObject ,具体的WXMediaMessage.IMediaObject 有:
WXAppExtendObject, WXEmojiObject, WXFileObject, WXImageObject, WXMusicObject, WXTextObject, WXVideoObject, WXWebpageObject
---------------------------------------------------------------------------------------------------------
1,WXEntryActivity 在清单文件中注册时 android:exported 属性未配置,导致无法从微信+号处调用3rd应用,ActivityManager 报的异常的 permission deny 。android:exported 默认 false,即不允许被其他程序调用。所以。设置成true ,ok