集成的详细步骤请参考:https://blog.csdn.net/qq_40803752/article/details/78616477
先说一下我遇到的问题,我是集成微信登录,微信客户端拉起来了也授权了,但是返回要应用的时候不回调WXEntryActivity中的onReq和onResp方法。
我的问题是在WXEntryActivity中没有加入这句话:
api.handleIntent(getIntent(), this);
详细代码:
public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
private IWXAPI api;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 通过WXAPIFactory工厂,获取IWXAPI的实例
api = WXAPIFactory.createWXAPI(this,"wx68419cafec22c652",true);
// 将应用的appId注册到微信
api.registerApp("wx68419cafec22c652");
api.handleIntent(getIntent(), this);
}
@Override
public void onReq(BaseReq baseReq) {
System.out.println("-----onReq:"+baseReq.toString());
System.out.println("-----onReq:"+baseReq.toString());
}
@Override
public void onResp(BaseResp baseResp) {
System.out.println("-----onResp:"+baseResp.toString());
System.out.println("-----onResp:"+baseResp.toString());
}
}
我的问题通过以上方式解决了,在这个过程中我还尝试了很多其他方法,
如:
第一种:
<activity
android:name=".wxapi.WXEntryActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:exported="true"
android:taskAffinity="com.damibaby"
android:launchMode="singleTask">
</activity>
在清单文件中配置微信的activity时,要加入android:exported="true"这句话
第二种:
这个wxapi目录要对上,在你注册微信appid时候的包名下,比如你注册的包名是com.haha 那这个wxapi就应该在com.haha下
----------------------------------------------------------------------------------------------------------------------------------------------------------------
补充:今天又出现了回调不走WXEntryActivity中的onReq和onResp方法的现象。而且出现白屏现象,白屏现象解决就是在AndroidManifest.xml清单文件中配置WXEntryActivity 节点的android:theme="@android:style/Theme.Translucent.NoTitleBar"属性就ok了。
先说一下这次不回调onReq和onResp方法的原因,是因为我在WXEntryActivity中的onCreate方法不对,上个图看一下就知道了
正常应该用下面图中这个只带一个参数的onCreate方法
到此不回调onReq和onResp的问题就解决了。
具体也不知道怎么搞得会出现该问题,可能是因为之前倒工程时大意了。
补充时间 2020年7月10日14:02:21