-
Notifications
You must be signed in to change notification settings - Fork 2
Home
dongwenqiang edited this page Apr 30, 2014
·
5 revisions
337 Mobile SDK Android版集成文档
-
将下载的SDK包解压,其中Mobile337V2Lib工程为SDK的核心library工程,引入该工程:
-
如需使用Facebook登录功能,则还需要引入Facebook的SDK:Facebook SDK
-
添加权限:
<!-- 基本权限 --> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <!-- GoogelPlay内购功能 --> <uses-permission android:name="com.android.vending.BILLING" /> <!-- Fotumo手机支付功能 --> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.SEND_SMS" /> <uses-feature android:name="android.hardware.telephony" android:required="false" /> <!-- 韩国Tstore付款渠道 --> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/> <uses-permission android:name="com.tmoney.vending.INBILLING"/> <permission android:name="com.tmoney.vending.INBILLING"/> <!-- 韩国KT平台 --> <uses-permission android:name="android.permission.GET_TASKS"/>
基本权限必须添加,其他权限根据运营需求可选
-
添加Activity、MetaData等其他数据:
<!-- 基础功能 --> <activity android:name="com.web337.android.widget.PopuView" android:theme="@style/Theme.Translucent" android:configChanges="orientation|keyboardHidden|screenSize" android:windowSoftInputMode="adjustResize"/> <activity android:name="com.web337.android.pay.PayCoreMobileActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:theme="@style/mobile337transparent"> </activity> <activity android:name="com.web337.android.pay.PayShowPackagesActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:theme="@style/mobile337transparent"> </activity> <activity android:name="com.web337.android.ticket.TicketCoreActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:windowSoftInputMode="adjustResize" > </activity> <activity android:name="com.web337.android.widget.Web" android:configChanges="orientation|keyboardHidden|screenSize" android:launchMode="singleTask" > </activity> <activity android:name="com.web337.android.user.UserPage" android:theme="@style/mobile337user" > </activity> <activity android:name="com.web337.android.user.GoogleAcountLogin" android:configChanges="orientation|keyboardHidden|screenSize" > </activity> <activity android:name="com.facebook.LoginActivity" android:theme="@android:style/Theme.Translucent" /> <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="\ 220782057940018" /> <receiver android:name="com.web337.android.Tracker" android:exported="true" > <intent-filter> <action android:name="com.android.vending.INSTALL_REFERRER" /> </intent-filter> </receiver> <!-- Fortumo手机支付 --> <activity android:name="com.fortumo.android.FortumoActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" > </activity> <activity android:name="com.web337.android.pay.fortumo.FortumoActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:theme="@android:style/Theme.Translucent.NoTitleBar" > </activity> <receiver android:name="com.fortumo.android.BillingSMSReceiver" > <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED" > </action> </intent-filter> </receiver> <service android:name="com.fortumo.android.FortumoService" /> <service android:name="com.fortumo.android.StatusUpdateService" /> <!-- 韩国Tstore支付渠道 --> <activity android:name="com.skplanet.dodo.IapWeb" android:configChanges="orientation|keyboardHidden|locale|screenSize|layoutDirection" android:excludeFromRecents="true" android:windowSoftInputMode="stateHidden"/> <meta-data android:name="iap:api_version" android:value="1"/> <!-- 韩国KT平台 --> <service android:name="com.kt.olleh.inapp.TimerService" /> <activity android:name="com.web337.android.pay.kt.KTActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:theme="@android:style/Theme.Translucent.NoTitleBar"></activity> <!-- 韩国Naver平台 --> <activity android:name="com.web337.android.pay.naver.NaverActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:theme="@android:style/Theme.Translucent.NoTitleBar"></activity>
screenSize添加时如果出现错误,请更改targetSdkVersion为13以上即可
com.facebook.sdk.ApplicationId如果不使用默认的220782057940018,可以替换为游戏自己的ID,需要事先将应用secret配置在337的后台
-
生命周期管理
在主Activity的onCreate方法中,调用:
com.web337.android.func.FuncCore.onCreate(this);
在onStart方法中,调用:
com.web337.android.func.FuncCore.onStart(this);
在onStop方法中,调用:
com.web337.android.func.FuncCore.onStop(this);
在onDestroy方法中,调用:
com.web337.android.func.FuncCore.onDestroy(this);
-
设置支付回调方法:
com.web337.android.func.FuncCore.setPayCallback(new FuncCore.PayCallback() { @Override public void onInitFinish(Msg msg) { if(msg.isSuccess()){ /*初始化成功*/ }else{ /*初始化失败*/ } } @Override public void onComplete(Order o) { /*付款成功*/ } @Override public void onCancel() { /*取消支付*/ } @Override public void onFailed(Msg msg) { /*支付失败*/ } });
-
用户登录:
final FuncCore.LoginCallback logincallback = new FuncCore.LoginCallback(){ @Override public void onLoginSuccess(User u, boolean isRegist) { if(isRegist){ /*注册成功*/ }else{ /*登录成功*/ } } @Override public void onCancel() { /*取消登录*/ } }; FuncCore.goLoginAndInit(context, logincallback, true);
goLoginAndInit第三个方法是指定用户页面先展示注册页还是先展示登录页,设置为true,则先展示登录页
-
设置角色和服信息:
com.web337.android.id.Zone.getInstance().clear(); com.web337.android.id.Zone.getInstance().setRole_id("roleid00001"); com.web337.android.id.Zone.getInstance().setServer_id("server1");
-
打开浮动菜单功能(可选):
FuncCore.showFloatWindow(activity);
-
发起支付:
使用337的档位展示页面,直接调用:
PayCore.show();
使用自有展示页面,需生成订单,并通过SDK发起支付:
com.web337.android.model.Order o = new com.web337.android.model.Order(); o.setAmount(amount); //游戏币数量 o.setDescription(description); //商品描述 o.setGross(gross); //商品金额 o.setCurrency(currency); //商品金额的货币类型 o.setProductId(productid); //商品ID,由337分配 o.setCustomData(customdata); //自定义数据,回调时原样回调 PayCore.beginPay(context, o);