目标:获取我需要发送到应用服务器的令牌
问题:注册返回true,请求完成返回true,但onReq并onResp没有被调用.这是代码:
public class WeChatActivity extends Activity implements IWXAPIEventHandler {
private static final String APP_ID = ;
private IWXAPI api;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_signin);
api = WXAPIFactory.createWXAPI(this, APP_ID, true);
api.handleIntent(getIntent(), this);
regToWx();
getAuthToken();
}
private void regToWx() {
api.handleIntent(getIntent(), this);
boolean registered = api.registerApp(APP_ID);
L.e(this, "registered: " + registered);
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
api.handleIntent(intent, this);
}
public void getAuthToken() {
SendAuth.Req req = new SendAuth.Req();
req.scope = "post_timeline";
req.state = "none";
boolean requestDone = api.sendReq(req);
L.e(this, "request done: " + requestDone);
SendAuth.Resp resp = new SendAuth.Resp();
requestDone = api.sendResp(resp);
L.e(this, "request done: " + requestDone);
}
@Override
public void onReq(BaseReq baseReq) {
L.e(this, "scope: " + ((SendAuth.Req) baseReq).scope);
}
@Override
public void onResp(BaseResp baseResp) {
L.e(this, "token: " + ((SendAuth.Resp) baseResp).token);
}
}
Run Code Online (Sandbox Code Playgroud)
Log cat输出:
D/MicroMsg.SDK.WXApiImplV10? check signature:308202eb30820254a003020...
D/MicroMsg.SDK.WXApiImplV10? pass
D/MicroMsg.SDK.WXApiImplV10? register app cn.wegazine.wegazine
D/MicroMsg.SDK.MMessage? send mm message, intent=Intent { act=com.tencent.mm.plugin.openapi.Intent.ACTION_HANDLE_APP_REGISTER (has extras) }, perm=com.tencent.mm.permission.MM_MESSAGE
E/WeChatActivity? registered: true
D/MicroMsg.SDK.WXApiImplV10? check signature:308202eb30820...
D/MicroMsg.SDK.WXApiImplV10? pass
D/MicroMsg.SDK.MMessageAct? send mm message, intent=Intent { flg=0x18000000 cmp=com.tencent.mm/.plugin.base.stub.WXEntryActivity (has extras) }
E/WeChatActivity? request done: true
D/MicroMsg.SDK.WXApiImplV10? check signature:308202eb30820...
D/MicroMsg.SDK.WXApiImplV10? pass
D/MicroMsg.SDK.MMessageAct? send mm message, intent=Intent { flg=0x18000000 cmp=com.tencent.mm/.plugin.base.stub.WXEntryActivity (has extras) }
E/WeChatActivity? request done: true
Run Code Online (Sandbox Code Playgroud)
Sea*_*nse -2
onReq并将在JAVA反射中onResp调用WXEntryActivity.java
假设包名io.github.you
您应该创建一个名为 的目录wxapi,然后创建一个WXEntryActivity.java
你得到io.github.you.wxapi.WXEntryActivity.java
在AndroidManifest.xml
<activity
android:name=".wxapi.WXEntryActivity"
android:exported="true"
android:label="@string/title_activity_wxentry"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoDisplay" >
Run Code Online (Sandbox Code Playgroud)
在WXEntryActivity.java
public class WXEntryActivity implements IWXAPIEventHandler{
@Override
public void onReq(BaseReq arg0) {
SendAuth.Resp r = (SendAuth.Resp)resp;
String code = r.code;
}
@Override
public void onResp(BaseResp arg0) {
// TODO Auto-generated method stub
}
}
Run Code Online (Sandbox Code Playgroud)
祝你好运
| 归档时间: |
|
| 查看次数: |
2990 次 |
| 最近记录: |