1. 程式人生 > >友盟社會化分享登入沒有跳轉

友盟社會化分享登入沒有跳轉

兩個確認:
一:確認簽名,包名,appId,配置正確,與微信後臺一致。

二:確認微信回撥activity正確。所謂正確:
1.AndroidManifest 中配置資訊要與與文件一致。我使用的是最新sdk,版本號6.4.3。

 <!--微信-->
        <activity
            android:name=".wxapi.WXEntryActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:exported
="true" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" />

2.WXEntryActivity
路徑必須在包名/wxapi下。WXEntryActivity 繼承WXCallbackActivity ,一定要和下面一致。注意,一定不要重寫。這是因為WXCallbackActivity 已經實現了相應的處理。

public class WXEntryActivity extends WXCallbackActivity
{
}

看一下WXCallbackActivity原始碼,WXCallbackActivity 是一個抽象類,實現了IWXAPIEventHandler 中的 onResp和onReq方法,具體由UMWXHandler 去實現。

public abstract class WXCallbackActivity extends Activity implements IWXAPIEventHandler {
    private final String TAG = WXCallbackActivity.class.getSimpleName();
    protected UMWXHandler mWxHandler = null
; public WXCallbackActivity() { } protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); UMShareAPI api = UMShareAPI.get(this.getApplicationContext()); Log.um("WXCallbackActivity"); this.mWxHandler = (UMWXHandler)api.getHandler(SHARE_MEDIA.WEIXIN); Log.e(this.TAG, "handleid=" + this.mWxHandler); this.mWxHandler.onCreate(this.getApplicationContext(), PlatformConfig.getPlatform(SHARE_MEDIA.WEIXIN)); this.handleIntent(this.getIntent()); } protected void handleIntent(Intent intent) { this.mWxHandler.getWXApi().handleIntent(intent, this); } protected void onNewIntent(Intent paramIntent) { Log.d(this.TAG, "### WXCallbackActivity onNewIntent"); super.onNewIntent(paramIntent); this.setIntent(paramIntent); UMShareAPI api = UMShareAPI.get(this.getApplicationContext()); this.mWxHandler = (UMWXHandler)api.getHandler(SHARE_MEDIA.WEIXIN); Log.e(this.TAG, "handleid=" + this.mWxHandler); this.mWxHandler.onCreate(this.getApplicationContext(), PlatformConfig.getPlatform(SHARE_MEDIA.WEIXIN)); this.handleIntent(paramIntent); } @Override public void onResp(BaseResp resp) { if(this.mWxHandler != null && resp != null) { try { this.mWxHandler.getWXEventHandler().onResp(resp); } catch (Exception var3) { ; } } this.finish(); } @Override public void onReq(BaseReq req) { if(this.mWxHandler != null) { this.mWxHandler.getWXEventHandler().onReq(req); } this.finish(); } }