🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# **接入流程** ***** ## **资源引入** 1. 将 libs 目录下 jar包、aar包导入到项目中 2. 将\_x.x.x.x.so 放在游戏的 assets/gc\_plugins/目录下(此目录下只能有一个 so 文件,切勿更改我方提供 so 包的命名) 如有疑问,可参照 demo ## **配置AndroidMainfest** 1. 参数配置 ``` <!--appkey--> <meta-data android:name="GC_APPKEY" android:value="" /> <!--渠道id--> <meta-data android:name="GC_CPID" android:value="" /> <!--aeskey--> <meta-data android:name="GC_AESKEY" android:value="" /> <!--环境--> <meta-data android:name="GC_ENVIRONMENT" android:value="1" /> <!--闪屏页--> <meta-data android:name="GC_SPLASHPAGE" android:value="1" /> <!--游戏id--> <meta-data android:name="GC_GAMEID" android:value="" /> <!--平台号--> <meta-data android:name="GC_PLATFORM" android:value="" /> <!--头条appid--> <meta-data android:name="TOUTIAO_APPID" android:value="" /> <!--热云appkey--> <meta-data android:name="TRACKINGIO_APPKEY" android:value="" /> <!--buglyAppid--> <meta-data android:name="BUGLY_APPID" android:value="" /> <meta-data android:name="android.webkit.WebView.EnableSafeBrowsing" android:value="false" /> <meta-data android:name="android.max_aspect" android:value="2.2" /> ~~~ ``` 2. 权限配置 ``` ~~~ <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_SETTINGS" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> ~~~ ``` 3. activity和service声明 ``` <activity android:name="com.ryg.dynamicload.DLProxyFragmentActivity" android:label="@string/app_name" android:theme="@android:style/Theme.Translucent"> <intent-filter> <action android:name="com.ryg.dynamicload.proxy.fragmentactivity.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> <service android:name="com.ryg.dynamicload.DLProxyService" /> ``` ## **必须调用的API** Note:所有api都通过GCManager单例类来调用 ### **初始化** 该方法必须在游戏启动Activity的onCreate方法中调用 ``` GCManager.getInstance().init(this, new GCInitListener() { @Override public void onInitSuccess() { //初始化成功 } @Override public void onInitFail() { //初始化失败 } @Override public void onLoginSuccess(String s) { //登录成功回调 } @Override public void onLoginFail(String s) { //登录失败 } @Override public void onLogout() { //cp需要把游戏账号退出,跳转到登录界面 } @Override public void onExit() { finish(); System.exit(0); } }); ``` ### **页面时长统计** Note: 目前提供了对每个页面(Activity)停留时长的统计,每个页面的的停留时间是从 onResume 生命周期开始计算,到 onPause 结束。为了完成时长统计,接入方需要在每个 Activity 相应生命 周期方法中调用我们相对应的 API。 在 Activity#onResume()调用 ``` GCManager.getInstance().onResume (activity) ``` 在 Activity#onPause()调用 ``` GCManager.getInstance().onPause(activity) ``` ### **登录** ``` GCManager.getInstance().login(); ``` ### **支付** ``` GCManager.getInstance().recharge(amount, "倚天剑", "12345678", "http://mock.youximao.cn/mockjsdata/11/sdk/notify", "一区张无忌下的订单", "201712091622", "testRoleName", "testRoleServerName","10001", new GameCatSDKListener() { @Override public void onSuccess(JSONObject jsonObject) { } @Override public void onFail(String s) { } }); ``` | 参数名 | 参数类型 | 参数说明 | | --- | --- | --- | | amount | double | 金额,最高限额为 99 万, 最低为 1,必须为整数。 (测试时 可输入 0.1) | | description | String | 商品介绍 | | codeNo | String | 订单编号(用于对账跟发货凭证,必 须唯一| | notifyUrl | String | 发货回调地址(通知游戏端发货的地 址) | |extend | String | 游戏方的透传参数(传 进什么游戏猫都会原数 据返回,建议用 jsonString) | | roleId | String | 角色ID | | roleName | String | 玩家角色名称 | | roleServerName | String | 玩家所在服务器的名称| | roleServerId | String | 玩家所在服务器的ID | ### **同步角色信息** 在创建角色、进入游戏、昵称修改、角色升级、退出游戏时调用 ``` GCManager.getInstance().synRoleInfo("testRoleName", "testRoleServerName", "testRoleCamp", "10", "1111111","10001"); ``` | 参数名 | 参数类型 | 参数说明 | | --- | --- | --- | | roleName | String | 玩家角色名称 | | roleServerName | String | 玩家所在服务器的名称| | roleCamp | String | 角色阵营 | | roleGrade | String | 角色等级 | | roleId | String | 角色ID | | roleServerId | String | 玩家所在服务器的ID | ### **退出游戏** ``` GCManager.getInstance().exit(); ``` ### **生命周期** 接入游戏 Activity 的 OnActivityResult 参数同游戏 activity 的 onActivityResult 方法参数 ``` @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { GCManager.getInstance().onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data); } ``` 接入游戏 Activity的onDestroy参数同游戏 activity 的 onActivityResult 方法参数 ``` @Override protected void onDestroy() { GCManager.getInstance().onDestroy(this); super.onDestroy(); } ``` ### **bugly接入** Note:如果游戏中已经接入 bugly,则忽略以下操作,直接添加我们的账号(3227047104、2280031330)到贵方bugly 后台对应这款游戏下即可。 1. 游戏如果没有自己的 Application,需要配置 YXMApplication, android:name="com.ryg.sdk.YXMApplication" ``` <application android:name="com.ryg.sdk.YXMApplication" android:allowBackup="true" android:icon="@drawable/youximao_icon" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> ``` 2. 游戏有自己的 Application,则需要在游戏 Application 的 onCreate 中调用 ``` GCManager.getInstance().initBugly(this); ```