微信分享

分享

跳转到分享页面

public class WXEntryActivity extends BaseActivity implements IWXAPIEventHandler, MyInterFace.MyView {

    private Button button2;
    private Button button3;
    private IWXAPI iwxapi;
    //修改成自己的APPID
    private static String APP_ID = "wx4c96b6b8da494224";
    private WXShare wxShare;

    @Override
    protected int getLayout() {
        return R.layout.activity_wxentry;
    }

    @Override
    protected void initViews() {
        button2 = findViewById(R.id.button2);
        button3 = findViewById(R.id.button3);
    }

    @Override
    protected void initData() {
        // 隐藏状态栏
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        //接收到分享以及登录的intent传递handleIntent方法,处理结果
        iwxapi = WXAPIFactory.createWXAPI(this, APP_ID, false);
        iwxapi.handleIntent(getIntent(), this);
        wxShare = new WXShare(this);

        WXShare share = new WXShare(this);

        iwxapi = share.getApi();
        //wxShare.share("这是要分享的文字");
        wxShare.shareUrl(0, this, "https://open.weixin.qq.com", "微信分享", "I am so crazy");
        setListener();
    }

    private void setListener() {
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                wxShare.shareUrl(0, WXEntryActivity.this, "https://open.weixin.qq.com", "微信分享", "I am so crazy");
            }
        });
        button3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });
        wxShare.setListener(new WXShare.OnResponseListener() {
            @Override
            public void onSuccess() {
                Toast.makeText(WXEntryActivity.this, "分享成功", Toast.LENGTH_SHORT).show();
                finish();
            }

            @Override
            public void onCancel() {
                Toast.makeText(WXEntryActivity.this, "分享失败", Toast.LENGTH_SHORT).show();
                finish();
            }

            @Override
            public void onFail(String message) {
                Toast.makeText(WXEntryActivity.this, message, Toast.LENGTH_SHORT).show();
            }
        });
    }

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        Log.e("onNewIntent", "onNewIntent");
        setIntent(intent);
        if (!iwxapi.handleIntent(intent, this)) {
            finish();
        }
    }

    @Override
    public void onResp(BaseResp baseResp) {
        Intent intent = new Intent(WXShare.ACTION_SHARE_RESPONSE);
        intent.putExtra(WXShare.EXTRA_RESULT, new WXShare.Response(baseResp));
        sendBroadcast(intent);
        finish();
        if (baseResp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
            switch (baseResp.errCode) {
                case BaseResp.ErrCode.ERR_OK:
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            Toast.makeText(WXEntryActivity.this, "成功", Toast.LENGTH_SHORT).show();
                            Log.e("WXPay", "支付成功");
                            WXEntryActivity.this.finish();
                        }
                    });
                    break;
                case BaseResp.ErrCode.ERR_USER_CANCEL:
                    Toast.makeText(WXEntryActivity.this, "取消支付", Toast.LENGTH_SHORT).show();
                    Log.e("WXPay", "用户取消支付");
                    WXEntryActivity.this.finish();
                    break;
                default:
                    finish();
                    break;
            }
        }
        //登录回调
        switch (baseResp.errCode) {
            case BaseResp.ErrCode.ERR_OK:
                //授权登录返回的code码
                String code = ((SendAuth.Resp) baseResp).code;
                Map<String, String> map = new HashMap<>();
                map.put("code", code);
                //请求接口文档的接口就好了
                break;
            case BaseResp.ErrCode.ERR_AUTH_DENIED://用户拒绝授权
                finish();
                break;
            case BaseResp.ErrCode.ERR_USER_CANCEL://用户取消
                finish();
                break;
            case BaseResp.ErrCode.ERR_SENT_FAILED:
                //发送失败
                break;
            case BaseResp.ErrCode.ERR_UNSUPPORT:
                //不支持错误
                break;
            case BaseResp.ErrCode.ERR_COMM:
                //一般错误
                break;
            default:
                finish();
                break;
        }
    }

    @Override
    public void onRequestSuccess(Object data) {
        //判断用的那个接口 返回的是那个Bean
        judgeWeChatBean(data);
    }

    private void judgeWeChatBean(Object data) {
        if(data instanceof WeChatLoginBean){
            if(!data.toString().isEmpty()){
                if(((WeChatLoginBean) data).getStatus().equals("0000")){
                    Toast.makeText(this, ""+((WeChatLoginBean) data).getMessage(), Toast.LENGTH_SHORT).show();
                    SpUtil.put("UserId",((WeChatLoginBean) data).getResult().getUserId());
                    SpUtil.put("SessionId",((WeChatLoginBean) data).getResult().getSessionId());
                    SpUtil.put("WeChatLoginSuccess",true);
                    //startActivity(new Intent(WXEntryActivity.this,SwitchActivity.class));
                    Log.e("zzz", "startActivity" );
                    finish();
                }
            }
        }
    }

    @Override
    public void onRequestError(String error) {

    }

    @Override
    public void onReq(BaseReq baseReq) {

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值