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的情况下,支付列表仍然为空或登录总是出错? |