// TODO GAME 在onNewIntent中需要调用handleCallback将平台带来的数据交给MSDK处理 @Override protected void onNewIntent(Intent intent) { Logger.d("onNewIntent"); super.onNewIntent(intent); // TODO GAME 处理游戏被拉起的情况 // launchActivity的onCreat()和onNewIntent()中必须调用 // WGPlatform.handleCallback()。否则会造成微信登录无回调 if (WGPlatform.wakeUpFromHall(intent)) { Logger.d("LoginPlatform is Hall"); Logger.d(intent); } else { Logger.d("LoginPlatform is not Hall"); Logger.d(intent); WGPlatform.handleCallback(intent); } }
// 平台授权成功,让用户进入游戏. 由游戏自己实现登录的逻辑 public void letUserLogin() { LoginRet ret = new LoginRet(); WGPlatform.WGGetLoginRecord(ret); Logger.d("flag: " + ret.flag); Logger.d("platform: " + ret.platform); if (ret.flag != CallbackFlag.eFlag_Succ) { Toast.makeText(MainActivity.this, "UserLogin error!!!", Toast.LENGTH_LONG).show(); Logger.d("UserLogin error!!!"); letUserLogout(); return; } if (ret.platform == WeGame.QQPLATID) { for (int i = 0; i < nameList.size(); i++) { if ("QQ登录".equals(nameList.get(i).name)) { seletedModule = nameList.get(i); startModule(); break; } } } else if (ret.platform == WeGame.WXPLATID) { for (int i = 0; i < nameList.size(); i++) { if ("微信登录".equals(nameList.get(i).name)) { seletedModule = nameList.get(i); startModule(); break; } } } }
public void startWaiting() { Logger.d("startWaiting"); mAutoLoginWaitingDlg = new ProgressDialog(this); stopWaiting(); mAutoLoginWaitingDlg.setTitle("自动登录中..."); mAutoLoginWaitingDlg.show(); }
// TODO GAME 游戏需要集成此方法并调用WGPlatform.onDestory() @Override protected void onDestroy() { super.onDestroy(); WGPlatform.onDestory(this); Logger.d("onDestroy"); if (lbm != null) { lbm.unregisterReceiver(mReceiver); } }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // TODO GAME 游戏需自行检测自身是否重复, 检测到吃重复的Activity则要把自己finish掉 // 注意:游戏需要加上去重判断finish重复的实例,否则可能发生重复拉起游戏的问题。游戏可自行决定重复的判定。 if (WGPlatform.IsDifferentActivity(this)) { Logger.d("Warning!Reduplicate game activity was detected.Activity will finish immediately."); this.finish(); return; } requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.main_layout); // TODO GAME 初始化MSDK /** * ********************************************************* TODO GAME 接入必须要看, * baseInfo值因游戏而异,填写请注意以下说明: baseInfo值游戏填写错误将导致 QQ、微信的分享,登录失败 ,切记 !!! * 只接单一平台的游戏请勿随意填写其余平台的信息,否则会导致公告获取失败 offerId 为必填,一般为手QAppId * ********************************************************* */ MsdkBaseInfo baseInfo = new MsdkBaseInfo(); baseInfo.qqAppId = "100703379"; baseInfo.qqAppKey = "4578e54fb3a1bd18e0681bc1c734514e"; baseInfo.wxAppId = "wxcde873f99466f74a"; baseInfo.msdkKey = "5d1467a4d2866771c3b289965db335f4"; baseInfo.offerId = "100703379"; // TODO GAME 自2.7.1a开始游戏可在初始化msdk时动态设置版本号,灯塔和bugly的版本号由msdk统一设置 // 1、版本号组成 = versionName + versionCode // 2、游戏如果不赋值给appVersionName(或者填为"")和appVersionCode(或者填为-1), // msdk默认读取AndroidManifest.xml中android:versionCode="51"及android:versionName="2.7.1" // 3、游戏如果在此传入了appVersionName(非空)和appVersionCode(正整数)如下,则灯塔和bugly上获取的版本号为2.7.1.271 baseInfo.appVersionName = "2.8.2"; baseInfo.appVersionCode = 282; // 注意:传入Initialized的activity即this,在游戏运行期间不能被销毁,否则会产生Crash WGPlatform.Initialized(this, baseInfo); // 设置拉起QQ时候需要用户授权的项 WGPlatform.WGSetPermission(WGQZonePermissions.eOPEN_ALL); // 设置java层或c++层回调,如果两层都设置了则会只回调到java层 if (LANG.equals("java")) { // 全局回调类,游戏自行实现 WGPlatform.WGSetObserver(new MsdkCallback(this)); } else { // cpp层 回调设置 PlatformTest.setObserver(true); PlatformTest.WGLogPlatformSDKVersion(); PlatformTest.SetActivity(this); } // MSDKDemo 界面实现 initView(); // TODO GAME 处理游戏被拉起的情况 // launchActivity的onCreat()和onNewIntent()中必须调用 // WGPlatform.handleCallback()。否则会造成微信登录无回调 if (WGPlatform.wakeUpFromHall(this.getIntent())) { // 拉起平台为大厅 Logger.d("LoginPlatform is Hall"); Logger.d(this.getIntent()); } else { // 拉起平台不是大厅 Logger.d("LoginPlatform is not Hall"); Logger.d(this.getIntent()); WGPlatform.handleCallback(this.getIntent()); } isFirstLogin = true; }
public void stopWaiting() { Logger.d("stopWaiting"); if (mAutoLoginWaitingDlg != null && mAutoLoginWaitingDlg.isShowing()) { mAutoLoginWaitingDlg.dismiss(); } }
// TODO GAME 在onActivityResult中需要调用WGPlatform.onActivityResult @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); WGPlatform.onActivityResult(requestCode, resultCode, data); Logger.d("onActivityResult"); }