Android 调用微信登陆、支付、分享,出现的白屏、黑屏、闪屏问题。


当我在去调用微信的登录界面,或者其他支付界面,

WXEntryActivity又一个界面,这样看起来很不协调

(WXEntryActivity类finish的时候会有闪屏的效果)。

为了让用户感觉只是拉起了一个授权界面,需要加上


        android:theme="@android:style/Theme.Translucent"
        使WXEntryActivity变成透明,这样在跳转的过程中就感觉不到WXEntryActivity的存在了


        <!-- wx start -->
        <activity
            android:name=".wxapi.WXPayEntryActivity"
            android:theme="@android:style/Theme.Translucent"
            android:screenOrientation="portrait"
            android:exported="true"
            android:launchMode="singleTop" />
        <activity
            android:name=".wxapi.WXEntryActivity"
            android:theme="@android:style/Theme.Translucent"
            android:screenOrientation="portrait"
            android:exported="true"
            android:launchMode="singleTop" />
        <!-- wx end -->


WXEntryAcitivity变成透明后,在跳转过程中感觉不到它的存在了,

但是在调试过程中WXEntryActivity,

会自动finish还有如果里面做耗时操作的话

(比如根据code请求access_token等),

该activity在部分手机不会被finish,

并且code has been used....根据调试最好不要在这个activity做耗时操作。



总结:遇到问题分析要认真分析.拿微信的第三方登录闪屏白屏等问题为例:

点击微信登录(第一个界面)-----跳转到授权页面(第二个界面),

然后在该界面点击确认登录按钮-----回调到WXEntryActivity界面

(这个界面会让用户感受到白屏或则闪屏等问题,最好不要做耗时操作)

这个界面耗时后调用finish不管用,

貌似它自己会自动finish(第三个界面)-----回到了最初的登录界面(第一个界面)。

所以只需要解决WXEntryActivituy这个activity成透明,用户就感觉不到它的存在了,

也就不会感觉到闪屏以及白屏等问题了。


 另外就是登陆后,或者分享后。


点击返回自己的APP。黑屏的情况下,只能再次点击再能返回到自己的app.

这里的原因就是点击返回的时候,

我们在WXEntryActivity 中去判断返回值。

根据返回值,去判断,去做页面的处理



当然也是我最近遇到的一个做的时候遇到的一个问题,可能大家遇到的情况都不一样。我这里就分享遇到的问题和处理的方式。



在回调中onResp

这里的话我就去拿到BaseResp.getType().去判断去做处理

当然我这里判断拿出来的 分享的返回值是 

BaseResp.getType() == 1;则为微信登陆,

BaseResp.getType() == 0;则为微信分享。

(当然这里根据自己去判断的为准。其实我不知道这值会不会变)





猜你喜欢

转载自blog.csdn.net/qq_35070105/article/details/77008504
今日推荐