package com.wsj.Imgdt3; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.widget.Toast; import com.tencent.mm.opensdk.constants.ConstantsAPI; import com.tencent.mm.opensdk.modelbase.BaseReq; import com.tencent.mm.opensdk.modelbase.BaseResp; import com.tencent.mm.opensdk.modelbiz.SubscribeMessage; import com.tencent.mm.opensdk.modelbiz.WXLaunchMiniProgram; import com.tencent.mm.opensdk.modelbiz.WXOpenBusinessView; import com.tencent.mm.opensdk.modelbiz.WXOpenBusinessWebview; import com.tencent.mm.opensdk.modelmsg.SendAuth; import com.tencent.mm.opensdk.modelmsg.ShowMessageFromWX; import com.tencent.mm.opensdk.modelmsg.WXAppExtendObject; import com.tencent.mm.opensdk.modelmsg.WXMediaMessage; import com.tencent.mm.opensdk.openapi.IWXAPI; import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler; import com.tencent.mm.opensdk.openapi.WXAPIFactory; import java.lang.ref.WeakReference; public class WXEntryActivity extends Activity implements IWXAPIEventHandler{ private static String TAG = "MicroMsg.WXEntryActivity"; private IWXAPI api; private MyHandler handler; public static String wxAPPID = "wxd9772f42f126413f"; //可以设置成全局变量 private static class MyHandler extends Handler { private final WeakReference wxEntryActivityWeakReference; public MyHandler(WXEntryActivity wxEntryActivity){ wxEntryActivityWeakReference = new WeakReference(wxEntryActivity); } @Override public void handleMessage(Message msg) { int tag = msg.what; } } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); api = WXAPIFactory.createWXAPI(this, wxAPPID, false); handler = new MyHandler(this); try { Intent intent = getIntent(); api.handleIntent(intent, 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) { switch (req.getType()) { case ConstantsAPI.COMMAND_GETMESSAGE_FROM_WX: goToGetMsg(); break; case ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX: goToShowMsg((ShowMessageFromWX.Req) req); break; default: break; } finish(); } @Override public void onResp(BaseResp resp) { int result = 0; switch (resp.errCode) { case BaseResp.ErrCode.ERR_OK: break; case BaseResp.ErrCode.ERR_USER_CANCEL: break; case BaseResp.ErrCode.ERR_AUTH_DENIED: break; case BaseResp.ErrCode.ERR_UNSUPPORT: break; default: break; } Toast.makeText(this, getString(result) + ", type=" + resp.getType(), Toast.LENGTH_SHORT).show(); if (resp.getType() == ConstantsAPI.COMMAND_SUBSCRIBE_MESSAGE) { SubscribeMessage.Resp subscribeMsgResp = (SubscribeMessage.Resp) resp; String text = String.format("openid=%s\ntemplate_id=%s\nscene=%d\naction=%s\nreserved=%s", subscribeMsgResp.openId, subscribeMsgResp.templateID, subscribeMsgResp.scene, subscribeMsgResp.action, subscribeMsgResp.reserved); Toast.makeText(this, text, Toast.LENGTH_LONG).show(); } if (resp.getType() == ConstantsAPI.COMMAND_LAUNCH_WX_MINIPROGRAM) { WXLaunchMiniProgram.Resp launchMiniProgramResp = (WXLaunchMiniProgram.Resp) resp; String text = String.format("openid=%s\nextMsg=%s\nerrStr=%s", launchMiniProgramResp.openId, launchMiniProgramResp.extMsg,launchMiniProgramResp.errStr); Toast.makeText(this, text, Toast.LENGTH_LONG).show(); } if (resp.getType() == ConstantsAPI.COMMAND_OPEN_BUSINESS_VIEW) { WXOpenBusinessView.Resp launchMiniProgramResp = (WXOpenBusinessView.Resp) resp; String text = String.format("openid=%s\nextMsg=%s\nerrStr=%s\nbusinessType=%s", launchMiniProgramResp.openId, launchMiniProgramResp.extMsg,launchMiniProgramResp.errStr,launchMiniProgramResp.businessType); Toast.makeText(this, text, Toast.LENGTH_LONG).show(); } if (resp.getType() == ConstantsAPI.COMMAND_OPEN_BUSINESS_WEBVIEW) { WXOpenBusinessWebview.Resp response = (WXOpenBusinessWebview.Resp) resp; String text = String.format("businessType=%d\nresultInfo=%s\nret=%d",response.businessType,response.resultInfo,response.errCode); Toast.makeText(this, text, Toast.LENGTH_LONG).show(); } if (resp.getType() == ConstantsAPI.COMMAND_SENDAUTH) { SendAuth.Resp authResp = (SendAuth.Resp)resp; final String code = authResp.code; } finish(); } private void goToGetMsg() { // Intent intent = new Intent(this, GetFromWXActivity.class); // intent.putExtras(getIntent()); // startActivity(intent); finish(); } private void goToShowMsg(ShowMessageFromWX.Req showReq) { WXMediaMessage wxMsg = showReq.message; WXAppExtendObject obj = (WXAppExtendObject) wxMsg.mediaObject; StringBuffer msg = new StringBuffer(); msg.append("description: "); msg.append(wxMsg.description); msg.append("\n"); msg.append("extInfo: "); msg.append(obj.extInfo); msg.append("\n"); msg.append("filePath: "); msg.append(obj.filePath); // Intent intent = new Intent(this, ShowFromWXActivity.class); // intent.putExtra(Constants.ShowMsgActivity.STitle, wxMsg.title); // intent.putExtra(Constants.ShowMsgActivity.SMessage, msg.toString()); // intent.putExtra(Constants.ShowMsgActivity.BAThumbData, wxMsg.thumbData); // startActivity(intent); finish(); } }