|
@@ -0,0 +1,176 @@
|
|
|
+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<WXEntryActivity> wxEntryActivityWeakReference;
|
|
|
+
|
|
|
+ public MyHandler(WXEntryActivity wxEntryActivity){
|
|
|
+ wxEntryActivityWeakReference = new WeakReference<WXEntryActivity>(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();
|
|
|
+ }
|
|
|
+}
|