YShare微信分享不写WXEntryActivity的技巧(三)

1,783 阅读1分钟

对接过微信分享的小伙伴应该很清楚,就是需要在包名的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即可。

Github 开源地址:github.com/ysbing/ysha…

有任何建议和bug,欢迎大家提Issue