代码都贴出来
WXEntryActivity.java
package com.vivigames.scmj.wxapi; import org.cocos2dx.lib.Cocos2dxJavascriptJavaBridge; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.provider.Settings; import android.util.Log; import com.tencent.mm.sdk.openapi.BaseReq; import com.tencent.mm.sdk.openapi.BaseResp; import com.tencent.mm.sdk.openapi.IWXAPI; import com.tencent.mm.sdk.openapi.IWXAPIEventHandler; import com.tencent.mm.sdk.openapi.SendAuth; import com.tencent.mm.sdk.openapi.WXAPIFactory; import com.vivigames.scmj.Constants; import com.vivigames.scmj.WXAPI; import com.tencent.mm.sdk.openapi.WXTextObject; public class WXEntryActivity extends Activity implements IWXAPIEventHandler { private IWXAPI _api; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.plugin_entry); Log.d("WXEntryActivity", "onCreate"); _api = WXAPIFactory.createWXAPI(this, Constants.APP_ID, false); //_api.registerApp(Constants.APP_ID); _api.handleIntent(getIntent(), this); } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); setIntent(intent); _api.handleIntent(intent, this); } @Override public void onReq(BaseReq req) { /* switch (req.getType()) { case ConstantsAPI.COMMAND_GETMESSAGE_FROM_WX: //goToGetMsg(); break; case ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX: //goToShowMsg((ShowMessageFromWX.Req) req); break; default: break; } */ this.finish(); } @Override public void onResp(BaseResp resp) { int result = 0; switch (resp.errCode) { case BaseResp.ErrCode.ERR_OK: if (WXAPI.isLogin) { SendAuth.Resp authResp = (SendAuth.Resp) resp; if (authResp != null && authResp.token != null) { Cocos2dxJavascriptJavaBridge.evalString("cc.vv.anysdkMgr.onLoginResp('" + authResp.token + "')"); } } break; case BaseResp.ErrCode.ERR_USER_CANCEL: result = 2;//R.string.errcode_cancel; break; case BaseResp.ErrCode.ERR_AUTH_DENIED: result = 3;//R.string.errcode_deny; break; default: result = 4;//R.string.errcode_unknown; break; } this.finish(); //Toast.makeText(this, result, Toast.LENGTH_LONG).show(); } }
WXAPI.java
package com.vivigames.scmj; import android.app.Activity; import android.content.Context; import com.tencent.mm.sdk.openapi.IWXAPI; import com.tencent.mm.sdk.openapi.SendAuth; import com.tencent.mm.sdk.openapi.SendMessageToWX; import com.tencent.mm.sdk.openapi.WXAPIFactory; import com.tencent.mm.sdk.openapi.WXMediaMessage; import com.tencent.mm.sdk.openapi.WXWebpageObject; public class WXAPI { public static IWXAPI api; public static Activity instance; public static boolean isLogin = false; public static void Init(Activity context){ WXAPI.instance = context; api = WXAPIFactory.createWXAPI(context, Constants.APP_ID, true); api.registerApp(Constants.APP_ID); } private static String buildTransaction(final String type) { return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis(); } public static void Login(){ isLogin = true; final SendAuth.Req req = new SendAuth.Req(); req.scope = "snsapi_userinfo"; req.state = "carjob_wx_login"; api.sendReq(req); //instance.finish(); } public static void Share(String url,String title,String desc){ try{ isLogin = false; WXWebpageObject webpage = new WXWebpageObject(); webpage.webpageUrl = url; WXMediaMessage msg = new WXMediaMessage(webpage); msg.title = title; msg.description = desc; //msg.thumbData = Util.bmpToByteArray(thumbBmp, true); SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = buildTransaction("webpage"); req.message = msg; req.scene = /*isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : */SendMessageToWX.Req.WXSceneSession; api.sendReq(req); //instance.finish(); } catch(Exception e){ e.printStackTrace(); } } }
AndroidMainfest.xml
点击按钮能够调用到Login方法,可是初始化的时候没有调用onCreate方法,新手一枚,求指教
我把AndroidMainfest下的name为org.cocos2dx.javascript.AppActivity
<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>
注销掉,WXEntryActivity下的onCreate方法才会被调用
可是还是不知道怎么解决