Android 记一次微信分享自己跳的坑

微信分享点击返回自己的app,黑屏

(项目忙的小伙伴可以直接看最后)

因项目需求,需要做一个微信分享的功能
。。。。。。。。。

打开微信开放平台,Android开发手册
OK,复制粘,呸!经过认真仔细阅读官方文档深思熟虑之后,开始粘代码
(因为我们是分享网址,就写了分享网址的代码,其他需求的参考官方文档就可以了)


    private void wxBindShareFriend() {
        IWXAPI mIWXApi = WXAPIFactory.createWXAPI(this, BuildConfig.WX_APP_ID, true);
        mIWXApi.registerApp(BuildConfig.WX_APP_ID);
        if (WXHelper.isWxAppInstalled(mContext, mIWXApi)) {
            //初始化一个WXWebpageObject,填写url
            WXWebpageObject webpage = new WXWebpageObject();
            webpage.webpageUrl = "这里写你要分享的网址”;
            //用 WXWebpageObject 对象初始化一个 WXMediaMessage 对象
            WXMediaMessage msg = new WXMediaMessage(webpage);
            msg.title = "网页标题 ";
            msg.description = "网页描述";
            Bitmap thumbBmp = BitmapFactory.decodeResource(getResources(), R.drawable.renwen);
            thumbBmp.recycle();
            //msg.thumbData = bmpToByteArray(thumbBmp, true);
            //构造一个Req
            SendMessageToWX.Req req = new SendMessageToWX.Req();
            req.transaction = ("webpage");
            req.message = msg;
            
            //设置发送到朋友   !!!!!这里是分享好友的方法
            req.scene = SendMessageToWX.Req.WXSceneSession;
			//设置发送到朋友圈!!!!!这里是分享朋友圈的方法
            req.scene = SendMessageToWX.Req.WXSceneTimeline;

            //req.userOpenId = getOpenId();
            //调用api接口,发送数据到微信
            mIWXApi.sendReq(req);
        } else {
            //未安装微信
            ToastUtil.showToast(mContext, "您还没有安装微信客户端");
        }
    }

这里是 AndroidManifest 配置
微信登录和分享都是这一个类
<activity android:name=".wxapi.WXEntryActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:launchMode="singleTop" android:theme="@android:style/Theme.Translucent.NoTitleBar" />

都弄好了然后运行,挺好没有报错,点击分享按钮,分享成功,OK功能写完了,返回啊婆婆(APP)
我靠! 怎么点击屏幕没有反应,状态栏是黑的,在按一下物理返回键,好了。
。。。
这是啥情况!后来发现,因为微信登录和分享都是WXEntryActivity

登录时的BaseResp 的类型 是SendAuth,就是说分享和登录成功都是
BaseResp.ErrCode.ERR_OK,唯一的区别就是登陆成功是if (baseResp instanceof SendAuth.Resp);
那么就加一个判断 else {finish();} (我也知道这么写不友好,实在是没找到分享成功的状态,知道的大佬鼠请告诉我一下)
运行程序,点击分享,分享成功,返回APP,完美运行!

刚开始学习写博客,有什么不对的地方请各位狮虎们批评,反正我也不改(开个玩笑)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值