Commit 82eb378ad802eed9b4d32f996154603026751d6c
1 parent
d95d6c5fd8
Exists in
master
3.2.0文档更新
Showing 1 changed file with 79 additions and 35 deletions Side-by-side Diff
doc/AndroidDocument.md
| ... | ... | @@ -86,46 +86,77 @@ Help==>About Eclips点击Android对应的图标就可以查看版本了. |
| 86 | 86 | android:theme="@android:style/Theme.Translucent.NoTitleBar" > |
| 87 | 87 | </activity> |
| 88 | 88 | <activity |
| 89 | - android:name="com.gumptech.sdk.ExchangeWindow" | |
| 90 | - android:configChanges="orientation|screenLayout" | |
| 91 | - android:theme="@style/ex_win" > | |
| 89 | + android:name="com.gumptech.sdk.ExchangeWindow" | |
| 90 | + android:configChanges="orientation|screenLayout" | |
| 91 | + android:theme="@style/ex_win" > | |
| 92 | 92 | </activity> |
| 93 | 93 | <service android:name="com.gumptech.sdk.PushService" > |
| 94 | 94 | </service> |
| 95 | + <activity | |
| 96 | + android:name="com.facebook.FacebookActivity" | |
| 97 | + android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation" | |
| 98 | + android:label="@string/app_name" | |
| 99 | + android:theme="@android:style/Theme.Translucent.NoTitleBar" /> | |
| 95 | 100 | |
| 96 | 101 | |
| 97 | 102 | #### 2、 向Gump平台索要游戏ID(GID),完成代码接入 |
| 98 | -1.调用GumpSDK前需要执行初始化。 | |
| 99 | -若不需要分渠道 | |
| 100 | - | |
| 101 | - GumpSDK.init(Context,Appid, Appkey); | |
| 102 | -如果需要定义渠道,必须使用如下方法 | |
| 103 | - | |
| 104 | - GumpSDK.init(Context,Appid, Appkey,ChannelId); | |
| 103 | +正式开始接入逻辑代码前,先介绍下一些附加配置,以方便代码接入 | |
| 105 | 104 | *gump logo的显示控制方法,此方法参数指定是否显示GumpLogo |
| 106 | 105 | |
| 107 | 106 | GumpSDK.setShowLogo(boolean); |
| 108 | 107 | *横竖屏控制,默认为横屏,参数为false即为竖屏 |
| 109 | 108 | |
| 110 | 109 | GumpSDK.setScreenLandscape(true); |
| 110 | +*debug模式设置 | |
| 111 | + | |
| 112 | + GumpSDK.setDebugState(true); | |
| 113 | +1.调用GumpSDK前需要执行初始化。 | |
| 114 | + | |
| 115 | +若不需要分渠道 | |
| 116 | + | |
| 117 | + GumpSDK.init(Context,Appid, Appkey,InitializeCallback); | |
| 118 | +如果需要定义渠道,必须使用如下方法 | |
| 119 | + | |
| 120 | + GumpSDK.init(Context,Appid, Appkey,ChannelId,InitializeCallback); | |
| 121 | + | |
| 122 | +InitializeCallback为初始化回调接口,此接口只有一个回调方法initComplete(int result) result标识是否初始化成功,当result等于GumpSDK.CODE.OK时为成功,其他为失败 | |
| 123 | + | |
| 111 | 124 | 2.调用GumpSDK的开始方法,将执行登录流程,需要一个Activity实例作参数 |
| 112 | 125 | |
| 113 | 126 | GumpSDK.start(Activity); |
| 114 | -开发者需要在调用的Activity里重写onActivityResult方法以接受用户的登录结果,通常如下: | |
| 115 | - | |
| 116 | - //登录请求返回结果 | |
| 117 | - if (requestCode == GumpSDK.LOGIN_REQUEST_CODE) { | |
| 118 | - if (resultCode == RESULT_OK) { | |
| 119 | - String uid = data.getIntExtra("userId", -1); | |
| 120 | - int accountType = data.getIntExtra("accountType", -1); | |
| 121 | - String sessionkey = data.getStringExtra("sessionKey"); | |
| 122 | - | |
| 123 | - } else if (resultCode == RESULT_CANCELED) { | |
| 124 | - Toast.makeText(this, "operate be canceled", Toast.LENGTH_SHORT).show(); | |
| 125 | - } | |
| 126 | - } | |
| 127 | +在此之前,开发者需要注册用户状态监听以接受用户的登录/登出通知,通常如下: | |
| 128 | + | |
| 129 | + GumpSDK.setUserStateListener(new LoginStateListener() { | |
| 130 | + @Override | |
| 131 | + public void onLoginSuccess(GumpUser gumpUser) { | |
| 132 | + //登录成功,用户信息包含在GumpUser对象里 | |
| 133 | + } | |
| 134 | + | |
| 135 | + @Override | |
| 136 | + public void onLoginFailed(int code, String msg) { | |
| 137 | + //登录出错,根据错误码和信息判断错误类型 | |
| 138 | + Toast.makeText(MainActivity.this, "Login failed:code="+code+",message="+msg, Toast.LENGTH_SHORT).show(); | |
| 139 | + } | |
| 140 | + | |
| 141 | + @Override | |
| 142 | + public void onLoginCanceled() { | |
| 143 | + //用户取消登录 | |
| 144 | + Toast.makeText(MainActivity.this, "operate be canceled", Toast.LENGTH_SHORT).show(); | |
| 145 | + } | |
| 146 | + | |
| 147 | + @Override | |
| 148 | + public void onLogout() { | |
| 149 | + //用户登出 | |
| 150 | + | |
| 151 | + } | |
| 152 | + }); | |
| 127 | 153 | |
| 128 | -如上将收到成功登录用的userid,此Id标识唯一用户! | |
| 154 | +如上成功登录后收到的GumpUser对象包含以下信息 | |
| 155 | + | |
| 156 | + gumpUser.getUid();//获取用户的userid,此Id标识唯一用户! | |
| 157 | + gumpUser.getAccountType();//用户类型,此类型数据可从GumpPreference常量获取 | |
| 158 | + gumpUser.getSessionKey();//登录的sesionKey | |
| 159 | + | |
| 129 | 160 | |
| 130 | 161 | 3.支付功能 |
| 131 | 162 | 1)使用gump通行证登录,其中serverId为必传参数 |
| ... | ... | @@ -137,7 +168,7 @@ Help==>About Eclips点击Android对应的图标就可以查看版本了. |
| 137 | 168 | payInfo.putString("extraInfo", "This is demo!"); |
| 138 | 169 | payInfo.putString("serverId", "B4003"); |
| 139 | 170 | payInfo.putString("roleId", "10010"); |
| 140 | - GumpSDK.pay(MainActivity.this, payInfo); | |
| 171 | + GumpSDK.pay(MainActivity.this, payInfo,PurchaseCallback); | |
| 141 | 172 | 调用pay方法时,必须穿入一个bundle对象,包含如上字段,除serverId外可以设置值为空,但是字段必须全部包含 |
| 142 | 173 | 2)未使用gump通行证登录,需要传入用户id,serverId为必传参数 |
| 143 | 174 | |
| ... | ... | @@ -148,29 +179,42 @@ Help==>About Eclips点击Android对应的图标就可以查看版本了. |
| 148 | 179 | payInfo.putString("extraInfo", "This is demo!"); |
| 149 | 180 | payInfo.putString("serverId", "B4003"); |
| 150 | 181 | payInfo.putString("roleId", "10010"); |
| 151 | - GumpSDK.pay(MainActivity.this, payInfo,"1021"); | |
| 182 | + GumpSDK.pay(MainActivity.this, payInfo,"1021",PurchaseCallback); | |
| 183 | + | |
| 184 | +PurchaseCallback为支付状态回调接口,此接口含有3个方法 | |
| 185 | + | |
| 186 | + @Override | |
| 187 | + public void onPurchaseCompleted(PurchaseResult result) { | |
| 188 | + Log.i(TAG,"purchase completed"); | |
| 189 | + } | |
| 190 | + | |
| 191 | + @Override | |
| 192 | + public void onPurchaseError(int code, String msg) { | |
| 193 | + Log.i(TAG,"purchase error"); | |
| 194 | + } | |
| 195 | + | |
| 196 | + @Override | |
| 197 | + public void onPurchaseCanceled() { | |
| 198 | + Log.i(TAG,"purchase canceled"); | |
| 199 | + } | |
| 200 | + | |
| 152 | 201 | 5.注销登录 |
| 153 | 202 | |
| 154 | - GumpSDK.logout(Activity,GumpSDK.Callback); | |
| 155 | -当此方法调用后,用户退出登录,并会通过callback接口通知调用程序! | |
| 203 | + GumpSDK.logout(Activity); | |
| 204 | +当此方法调用后,用户退出登录,并会通过LoginStateListener接口通知调用程序! | |
| 156 | 205 | ## 第二章 常见问题 |
| 157 | 206 | ### 问题1: 如何避免混淆对SDK的影响? |
| 158 | 207 | 解答:有些开发者对接入了SDK的程序进行混淆时,有可能会覆盖某些java |
| 159 | 208 | 类,导致SDK无法正常工作,解决方法如下: |
| 160 | 209 | Ø 请开发者在混淆配置文件proguard.cfg或proguard-project.txt的最后加上 |
| 161 | 210 | |
| 162 | - -keepattributes *Annotation* | |
| 211 | + -keepattributes *Annotation*,InnerClasses,SourceFile,LineNumberTable | |
| 163 | 212 | -keep public class * extends android.app.Service |
| 164 | 213 | -keep public class com.google.vending.licensing.ILicensingService |
| 165 | 214 | -keep public class com.android.vending.licensing.ILicensingService |
| 166 | 215 | -keep class com.gumptech.sdk.view.* {*;} |
| 167 | 216 | -keep class com.gumptech.sdk.web.* {*;} |
| 168 | - -keep class com.gumptech.sdk.GumpSDK$Callback{ | |
| 169 | - void onLogout(); | |
| 170 | - } | |
| 171 | - -keep class com.gumptech.sdk.GumpPreference{ | |
| 172 | - public static final <fields>; | |
| 173 | - } | |
| 217 | + | |
| 174 | 218 | |
| 175 | 219 | 使得混淆的时候不会影响SDK的命名空间。 |
| 176 | 220 | ### 问题2:后台已经配置ok的情况下,支付列表仍然为空或登录总是出错? |