对接过微信分享的小伙伴应该很清楚,就是需要在包名的wxapi目录下创建一个WXEntryActivity类,然后实现IWXAPIEventHandler接口,再在onResp方法写具体业务逻辑。
就算是对接了第三方分享框架,很多也需要创建WXEntryActivity类,然后继承某个类等。
这样增加了对接的成本,有一种技巧,可以不用写WXEntryActivity类,就是使用activity-alias做一层转发,看wechat工程full风味下的AndroidManifest文件:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ysbing.yshare_wechat">
<application>
<meta-data
android:name="YSHARE_WECHAT_APPID"
android:value="${YSHARE_WECHAT_APPID}" />
<activity
android:name=".YWXEntryActivity"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="behind"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<activity-alias
android:name="${applicationId}.wxapi.WXEntryActivity"
android:exported="true"
android:targetActivity=".YWXEntryActivity" />
</application>
</manifest>
我把微信要访问的WXEntryActivity类转发到了YWXEntryActivity,就可以不用在对应包名下写这个类了,activity-alias的介绍点着
如果有微信登陆的需求,就需要写WXEntryActivity了,再继承YWXEntryActivity,将登陆逻辑写进去即可,在AndroidManifest配置activity-alias你的WXEntryActivity即可。