Android微信分享返回不了应用(或黑屏、或延时、或返回后马上又跳回微信)相关问题解决

前几年去掉了微信sdk,使用android系统的通用分享;最近由于业务需要又要加回来,结果标题相关问题都遇到了。

1、出现的问题和环节

  点击应用的分享按钮后,通过微信分享接口转入微信界面后:

  1-1、直接点微信左上角的返回按钮(无反应;或等一会黑屏,再等一会终于返回成功;或返回后又马上跳回微信)

  1-2、选一个好友分享

    1-2-1、点取消(即不分享)、再点微信的返回(现象同1-1)

    1-2-2、点分享、再点返回应用按钮(返回应用成功;或返回应用后又马上跳回微信)

2、解决办法(除了返回应用后又马上跳回微信这个问题

public class WXEntryActivity extends AppCompatActivity implements IWXAPIEventHandler {
// ..
}

上边的写法:如果继承AppCompatActivity ,那么AndroidManifest.xml里必须把theme设置一下

<activity
            android:configChanges="keyboard|keyboardHidden|orientation"
            android:label="@string/app_name"
            android:exported="true"
            android:launchMode="singleTop"
            android:theme="@style/Theme.AppCompat"
            android:name=".wxapi.WXEntryActivity">
</activity>

必须是这句: android:theme="@style/Theme.AppCompat"

否则就会出现标题里的各种现象(除了返回应用后马上返回微信)。

3、解决问题:返回应用后又马上跳回微信

这个应该属于应用代码问题(网上随便找的代码,没想到它引发了如此奇怪的问题)。

private void testWeixinShare() {
		Glide.with(this).asBitmap().load("图片url").into(new SimpleTarget<Bitmap>() {
			@Override
			public void onResourceReady(Bitmap bitmap, Transition<? super Bitmap> transition) {
				WxShareUtils.shareWeb(activity, "你的AppId",
						"https://baidu.com", "网页标题", "网页描述",
						bitmap);
			}

			@Override
			public void onLoadFailed(@Nullable Drawable errorDrawable) {
				super.onLoadFailed(errorDrawable);
				WxShareUtils.shareWeb(activity, "你的AppId",
						"https://baidu.com", "网页标题", "网页描述",
						null);
			}
		});
	}

WxShareUtils是自定义类,这个不用管,不是问题。

问题在于原作者用Glide这个第三方类取网络图片,里边有这2个回调;至于为什么就不清楚了,不熟悉这个Glide。总之排除法:我自己写了一段分享图片(例如App当前界面的截图,Bitmap格式)的代码,不用这个Glide,也就用不到这2个回调,结果“返回应用后马上跳回微信”这个搞笑现象就消失了(既然跳回微信,就说明app又因为什么生命周期机制调用了微信分享接口,不过不想研究了,不用这个Glide回调就是了)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值