Android 关于微信分享WXEntryActivity回调问题

当applicationId和项目包名不一致时,可能会导致WXEntryActivity无法收到回调。尽管分享可以正常进行,但解决这个问题可以使用标签重新定义WXEntryActivity的路径,确保targetActivity指向工程中WXEntryActivity的实际路径。此外,微信6.7.2及以上版本,开发者无法确定用户分享是否真正成功。
摘要由CSDN通过智能技术生成

按照微信的api,我们都会在自己的项目包名路径下新建一个名为wxapi的包,然后在里面新建WXEntryActivity。

今天不说如何集成微信分享,说一下关于applicationId和项目包名不一致引发的WXEntryActivity没有收到回调的问题

关于applicationId


        最早之前的安卓项目几乎没有applicationId的概念,或者说applicationId就是应用包名,因为我们一早灌输的概念就是应用包名应该是唯一的。但随着安卓版本的发展,applicationId的概念也逐渐凸显出来被应用到很多开发案例中,比如说同一款应用会有全功能版本和极速版本的区别,极速版功能轻量,包体小,对于用户转化和留存有着不可磨灭的功劳。


        全功能版本和极速版本会在build.gradle(:app)中定义不同的applicationId,所以严格意义上来讲已经是两个应用,但项目工程中的包名却可以保持一样


        在微信开放平台注册你的应用的时候,会提示让你填写应用包名,但实际上这个包名是你项目中build.gradle(:app)中的applicationId

那么如果你的applicationId和项目包名不一致,可能就会出现WXEntryActivity没有收到回调的问题
但是如果你的微信分享正确集成了,无论WXEntryActivity有没有收到回调,分享应该是可以正常分享出去的

下面看如何解决因applicationId和项目包名不一致引发的WXEntryActivity回调问题:
使用<activity-alias/>标签重新定义WXEntryActivity的路径

<activity
    android:name=".wxapi.WXEntryActivity"
    android:exported="true"
    android:label="@string/app_name"
    android:launchMode="singleTask"
    android:screenOrientation="portrait"
    android:taskAffinity="${applicationId}"
    android:theme="@style/Theme.YourTheme" />
<activity-alias
    android:name="${applicationId}.wxapi.WXEntryActivity"
    android:exported="true"
    android:targetActivity=".wxapi.WXEntryActivity" />

注意targetActivity是你工程中WXEntryActivity的真实路径


顺带提一句,微信客户端6.7.2以上版本,开发者无法在获取用户是否真的分享成功

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值