更新日期:2025年 05月 28日Unity3D接入文档
<h3>
<span style="line-height:3;font-size:16px;"><strong>1.unity部分</strong></span>
</h3>
<p>
<br />
</p>
<h4>
<span style="line-height:3;font-size:14px;"><strong>1.1. 导入SDK资源</strong></span>
</h4>
<p>
<span style="line-height:3;font-size:14px;">请先到"下载中心",下载“QuickSDK For Unity 3D”版本的SDK包。将其中的QuickSDKForUnity.unitypackage文件导入到Unity工程里面(如果无法导入,请再次确认文件是放置于非中文路径下的),如下图所示:</span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20210408/20210408143802T1I1243.png" alt="" /></span>
</p>
<h4>
<span style="line-height:3;font-size:14px;"><strong>1.2. 调用QuickSDK接口</strong></span>
</h4>
<p>
<span style="line-height:3;font-size:14px;">注: 调用QuickSDK.cs类的接口,并实现其回调方法</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">需要先添加quicksdk的命名空间(using quicksdk;),并通过 QuickSDK.getInstance( ) 方法获取QuickSDK类的实例</span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><strong>1.2.1</strong><strong>. 设置监听器(必接)</strong></span>
</p>
<p>
<span style="line-height:3;font-size:14px;">接口:void setListener(QuickSDKListener quickSDKListener )</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">案例:调用QuickSDK.getInstance().setListener函数,其参数传入实例化的QuickSDKListener类对象。setListener函数请尽可能早的设置,便于监听回调。</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">脚本需要实现的回调请参考以下代码:</span>
</p>
<pre class="brush:js;toolbar:false">public class EventHandle : QuickSDKListener {
void Start () {
QuickSDK.getInstance().setListener (this);
}
public override void onInitSuccess(){
//初始化成功的回调
}
public override void onInitFailed(ErrorMsg errMsg){
//初始化失败的回调
}
public override void onLoginSuccess (UserInfo userInfo){
//登录成功的回调
}
public override void onLoginFailed (ErrorMsg errMsg){
//登录失败的回调
//如果游戏没有登录按钮,应在这里再次调用登录接口
}
public override void onSwitchAccountSuccess (UserInfo userInfo){
//切换账号成功的回调
//一些渠道在悬浮框有切换账号的功能,此回调即切换成功后的回调。游戏应清除当前的游戏角色信息。在切换账号成功后回到选择服务器界面,请不要再次调用登录接口。
}
public override void onLogoutSuccess (){
//注销成功的回调
//游戏应该清除当前角色信息,回到登陆界面,并自动调用一次登录接口
}
public override void onPaySuccess (PayResult payResult){
//支付成功的回调
//一些渠道支付成功的通知并不准确,因此客户端的通知仅供参考,游戏发货请以服务端通知为准,不能以客户端的通知为准
}
public override void onPayCancel (PayResult payResult){
//支付取消的回调
}
public override void onPayFailed (PayResult payResult){
//支付失败的回调
}
public override void onExitSuccess (){
//SDK退出成功的回调
//在此处调用QuickSDK.getInstance().exitGame()函数即可实现退出游戏,杀进程。为避免与渠道发生冲突,请不要使用Application.Quit()函数
}
}</pre>
<p>
<br />
</p>
<pre class="brush:js;toolbar:false"></pre>
<p>
<strong style="font-size:14px;"></strong>
</p>
<p style="white-space:normal;">
<strong style="font-size:14px;"><strong><br />
</strong></strong>
</p>
<p style="white-space:normal;">
<strong style="font-size:14px;"><strong> </strong></strong>
</p>
<p style="white-space:normal;">
<strong style="font-size:14px;"><strong><strong style="white-space:normal;font-family:"font-size:14px;"><strong style="font-size:14px;">1.2.2. 初始化(必接)<br />
</strong></strong></strong></strong><span style="font-size:14px;"><br />
</span>
</p>
<p style="white-space:normal;">
<span style="font-size:14px;">接口:void init();<br />
</span><span style="font-size:medium;"><span style="font-size:14px;">功能:调用渠道SDK的初始化<br />
</span></span><span style="font-size:14px;">案例:QuickSDK.getInstance().init();</span>
</p>
<strong style="font-size:14px;"><strong> <br />
</strong></strong>
<p>
<br />
</p>
<p style="white-space:normal;">
<strong style="font-size:14px;"><strong><br />
</strong></strong>
</p>
<p style="white-space:normal;">
<strong style="font-size:14px;"><strong>1.2.3. 登录(必接)</strong></strong>
</p>
<p>
<br />
</p>
<p>
<span style="line-height:3;font-size:14px;">接口:void login();</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">功能:调用渠道SDK的登录</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">案例:QuickSDK.getInstance().login();</span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><strong>1.2.4. 上传角色信息(必接</strong>)</span>
</p>
<p>
<span style="color:#E53333;line-height:3;font-size:14px;"><strong>注:需要在创建角色,进入游戏,角色升级的时候分别调用上传角色信息的接口</strong></span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><strong>1.2.4.1. 创建角色时上传</strong></span>
</p>
<p>
<span style="line-height:3;font-size:14px;">接口:void createRole(GameRoleInfo gameRoleInfo);</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">功能:创建角色时向渠道SDK上传角色信息</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">案例:</span>
</p>
<pre class="brush:js;toolbar:false">GameRoleInfo gameRoleInfo = new GameRoleInfo();
gameRoleInfo.gameRoleBalance = "0";
gameRoleInfo.gameRoleID = "000001";
gameRoleInfo.gameRoleLevel = "1";
gameRoleInfo.gameRoleName = "钱多多";
gameRoleInfo.partyName = "同济会";
gameRoleInfo.serverID = "1";
gameRoleInfo.serverName = "火星服务器";
gameRoleInfo.vipLevel = "1";
gameRoleInfo.roleCreateTime = "roleCreateTime";//值为10位数时间戳
gameRoleInfo.gameRoleGender = "男";
gameRoleInfo.gameRolePower ="38";//设置角色战力,必须为整型字符串
gameRoleInfo.partyId ="1100";//设置帮派id,必须为整型字符串
gameRoleInfo.professionId = "11";//设置角色职业id,必须为整型字符串
gameRoleInfo.profession = "法师";//设置角色职业名称
gameRoleInfo.partyRoleId = "1";//设置角色在帮派中的id
gameRoleInfo.partyRoleName = "帮主"; //设置角色在帮派中的名称
gameRoleInfo.friendlist = "无";//设置好友关系列表,格式请参考:http://open.quicksdk.net/help/detail/aid/190
QuickSDK.getInstance ().createRole(gameRoleInfo);//创建角色</pre>
<p>
<span style="line-height:3;font-size:14px;"><strong>1.2.4.2. 进入游戏时上传</strong></span>
</p>
<p>
<span style="line-height:3;font-size:14px;">接口:void enterGame(GameRoleInfo gameRoleInfo);</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">功能:登录完成之后,进入游戏时向渠道SDK上传角色信息</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">案例:QuickSDK.getInstance().enterGame(gameRoleInfo);</span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><strong>1.2.4.3. 角色升级时上传</strong></span>
</p>
<p>
<span style="line-height:3;font-size:14px;">接口:void updateRole(GameRoleInfo gameRoleInfo);</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">功能:角色升级时向渠道SDK上传角色信息</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">案例:QuickSDK.getInstance().updateRole(gameRoleInfo);</span>
</p>
<p style="text-align:left;">
<span style="line-height:3;font-size:14px;"> <span style="font-size:14px;"> <strong> GameRoleInfo</strong></span></span>
</p>
<p>
<table bordercolor="#000000" style="width:100%;" border="1" cellspacing="0" cellpadding="2">
<tbody>
<tr>
<td style="text-align:left;width:20%;">
<span style="line-height:3;font-size:14px;">字段</span><br />
</td>
<td style="text-align:left;width:20%;">
<span style="line-height:3;font-size:14px;"></span><span style="line-height:3;font-size:14px;">类型</span><br />
</td>
<td style="text-align:left;width:20%;">
<span style="line-height:3;font-size:14px;">说明</span><br />
</td>
</tr>
<tr>
<td style="text-align:left;width:20%;">
<span style="line-height:3;font-size:14px;"></span><span style="line-height:3;font-size:14px;">serverID</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">String</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">服务器ID(值为数字字符串)</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
</tr>
<tr>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;"></span><span style="line-height:3;font-size:14px;">serverName</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">String</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;"> 服务器名称</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
</tr>
<tr>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;"></span><span style="line-height:3;font-size:14px;">gameRoleName</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">String</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">角色名称</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
</tr>
<tr>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;"></span><span style="line-height:3;font-size:14px;">gameRoleID</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">String</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">角色ID</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
</tr>
<tr>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">gameRoleBalance</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">String</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">角色用户余额</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
</tr>
<tr>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">vipLevel</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">String</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;"></span><span style="line-height:3;font-size:14px;">角色用户余额VIP等级(值为数字字符串)</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
</tr>
<tr>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">gameRoleLevel</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">String</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">角色用户等级(值为数字字符串)</span><span style="line-height:3;font-size:14px;"> </span><br />
</td>
</tr>
<tr>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">partyName</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">String</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">公会社团</span><span></span><span style="line-height:3;font-size:14px;"></span><br />
</td>
</tr>
<tr>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">roleCreateTime</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">String</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;width:100%;">
<span style="line-height:3;font-size:14px;">角色创建时间<span style="color:#E53333;">(传10位数时间戳,如要使用禁止新角色进入游戏的功能,此值必须传对)</span></span><span style="line-height:3;font-size:14px;"></span><br />
</td>
</tr>
<tr>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">gameRoleGender</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">String</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">角色性别</span><br />
</td>
</tr>
<tr>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">gameRolePower</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">String</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">战力</span><br />
</td>
</tr>
<tr>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">partyId</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">String</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">帮派id</span><br />
</td>
</tr>
<tr>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">professionId</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">String</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">角色职业id</span><br />
</td>
</tr>
<tr>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">profession</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">String</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">角色职业名称</span><br />
</td>
</tr>
<tr>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">partyRoleId</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">String</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">角色在帮派中的id</span><br />
</td>
</tr>
<tr>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">partyRoleName</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">String</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">角色在帮派中的名称</span><br />
</td>
</tr>
<tr>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">friendlist</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">String</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:3;font-size:14px;">好友关系列表</span><br />
</td>
</tr>
</tbody>
</table>
</p>
<p>
<span style="color:#E53333;line-height:3;font-size:14px;"><strong>接入说明:</strong></span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><strong><span style="color:#E53333;">1) 在创建游戏角色、进入游戏和角色升级时候需要上传角色信息</span></strong><strong><span style="color:#E53333;">;</span></strong></span>
</p>
<p>
<span style="color:#E53333;line-height:3;font-size:14px;"><strong>2)GameRoleInfo所有字段均需上传,不能传null,游戏没有的字段可以传一个默认值(比如 default 或者 1 之类的)</strong></span>
</p>
<p>
<span style="color:#E53333;line-height:3;font-size:14px;"><strong>3) 关于360渠道上传角色信息的具体说明,请参考:http://open.quicksdk.net/help/detail/aid/190</strong></span>
</p>
<p>
<span style="color:#E53333;line-height:3;font-size:14px;"><strong><br />
</strong></span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><strong>1</strong><strong>.2.5. 定额支付(必接)</strong></span>
</p>
<p>
<span style="line-height:3;font-size:14px;">接口:void pay(OrderInfo orderInfo, GameRoleInfo gameRoleInfo);</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">功能:调用渠道SDK的支付接口</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">案例:</span>
</p>
<p>
<span style="line-height:3;font-size:14px;"> </span>
</p>
<pre class="brush:js;toolbar:false">OrderInfo orderInfo = new OrderInfo();
GameRoleInfo gameRoleInfo = new GameRoleInfo();
orderInfo.goodsID = "1";
orderInfo.goodsName = "勾玉";
orderInfo.goodsDesc = "10个勾玉";
orderInfo.quantifier = "个";
orderInfo.extrasParams = "extparma";
orderInfo.count = 10;
orderInfo.amount = 1;
orderInfo.price = 0.1f;
orderInfo.callbackUrl = "";
orderInfo.cpOrderID = "cporderidzzw";
gameRoleInfo.gameRoleBalance = "0";
gameRoleInfo.gameRoleID = "11111";
gameRoleInfo.gameRoleLevel = "1";
gameRoleInfo.gameRoleName = "钱多多";
gameRoleInfo.partyName = "同济会";
gameRoleInfo.serverID = "1";
gameRoleInfo.serverName = "火星服务器";
gameRoleInfo.vipLevel = "1";
gameRoleInfo.roleCreateTime = "roleCreateTime";
QuickSDK.getInstance ().pay (orderInfo, gameRoleInfo);</pre>
<br />
<p>
<br />
</p>
<p>
<span style="line-height:3;font-size:14px;"></span><strong style="font-size:14px;">OrderInfo</strong>
</p>
<p>
<table bordercolor="#000000" style="width:80%;height:50%;" border="1" cellspacing="0" cellpadding="2">
<tbody>
<tr>
<td style="text-align:center;width:10%;">
<span style="line-height:3;font-size:14px;">字段</span>
</td>
<td style="text-align:center;">
<span style="line-height:3;font-size:14px;">类型</span>
</td>
<td style="text-align:center;">
<span style="line-height:3;font-size:14px;">说明</span>
</td>
</tr>
<tr>
<td style="text-align:center;">
<span style="line-height:3;font-size:14px;">goodsID</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:center;">
<span style="line-height:3;font-size:14px;">String</span><span></span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:center;">
<span style="line-height:3;font-size:14px;">产品ID</span><span style="line-height:3;font-size:14px;"></span><span style="line-height:3;font-size:14px;">,用来识别购买的产品</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
</tr>
<tr>
<td style="text-align:center;">
<span style="line-height:3;font-size:14px;">goodsName</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:center;">
<span style="line-height:3;font-size:14px;">String</span><span></span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:center;">
<span style="line-height:3;font-size:14px;">产品名称</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
</tr>
<tr>
<td style="text-align:center;width:30%;">
<span style="line-height:3;font-size:14px;">amount</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:center;">
<span style="line-height:3;font-size:14px;"><span style="white-space:normal;font-size:14px;text-align:center;">float</span></span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:center;">
<span style="line-height:3;font-size:14px;">支付总额(元)</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
</tr>
<tr>
<td style="text-align:center;">
<span style="line-height:3;font-size:14px;">count</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:center;">
<span style="line-height:3;font-size:14px;">int </span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:center;">
<span style="line-height:3;font-size:14px;">购买数量</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
</tr>
<tr>
<td style="text-align:center;width:20%;">
<span style="line-height:3;font-size:14px;">cpOrderID</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:center;">
<span style="line-height:3;font-size:14px;">String</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:center;">
<span style="line-height:3;font-size:14px;">产品订单号(游戏方的订单号)</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
</tr>
<tr>
<td style="text-align:center;width:20%;">
<span style="line-height:3;font-size:14px;">extrasParams</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:center;">
<span style="line-height:3;font-size:14px;">String</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:center;width:60%;">
<span style="line-height:3;font-size:14px;">透传参数 <span style="color:#E53333;">服务器发送异步通知时原样回传(需要传纯字符串,不能传json格式)</span><span style="color:#E53333;"></span></span><span style="line-height:3;font-size:14px;"></span><br />
</td>
</tr>
<tr>
<td style="text-align:center;">
<span style="line-height:3;font-size:14px;">price</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:center;">
<span style="line-height:3;font-size:14px;">float</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:center;">
<span style="font-size:14px;">价格(可跟amount传一样的值)</span>
</td>
</tr>
<tr>
<td style="text-align:center;">
<span style="line-height:3;font-size:14px;">quantifier</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:center;">
<span style="line-height:3;font-size:14px;">String</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:center;">
<span style="color:#323232;font-family:微软雅黑, "font-size:14px;white-space:normal;background-color:#FFFFFF;">购买商品单位,如:个</span><span style="font-size:14px;"></span><br />
</td>
</tr>
<tr>
<td style="text-align:center;width:15%;">
<span style="line-height:3;font-size:14px;">goodsDesc</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:center;">
<span style="line-height:3;font-size:14px;">String</span><span style="line-height:3;font-size:14px;"></span><br />
</td>
<td style="text-align:center;">
<span style="color:#323232;font-family:微软雅黑, "font-size:14px;white-space:normal;background-color:#FFFFFF;">商品描述</span><span style="font-size:14px;"></span><br />
</td>
</tr>
<tr>
<td style="text-align:center;">
<p>
callbackUrl
</p>
<p>
<br />
</p>
</td>
<td style="text-align:center;">
<p>
<span style="white-space:normal;font-size:14px;text-align:center;">String</span>
</p>
<p>
<span style="white-space:normal;font-size:14px;text-align:center;"><br />
</span>
</p>
</td>
<td style="text-align:center;height:40%;">
<p>
<span style="font-size:14px;">游戏支付回调地址,如后台也有配置,则优先通知后台设置的地址</span><span style="font-size:14px;"></span>
</p>
<p>
<br />
</p>
</td>
</tr>
</tbody>
</table>
</p>
<p>
<br />
</p>
<p>
<span style="line-height:3;font-size:14px;"><strong><span style="color:#E53333;">接入要求:</span></strong><strong><span style="color:#E53333;">为了兼容各个渠道商品名称能够统一显示,订单应以如下案例的形式传值:</span></strong></span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><strong><span style="color:#E53333;">案例1: </span></strong><strong><span style="color:#E53333;">案例2:</span></strong></span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><strong><span style="color:#E53333;">amount:6.0 </span></strong><strong><span style="color:#E53333;">amount:10.0</span></strong></span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><strong><span style="color:#E53333;">c</span></strong><strong><span style="color:#E53333;">ount:60 </span></strong><strong><span style="color:#E53333;">count:1</span></strong></span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><strong><span style="color:#E53333;">goodsName:元宝 </span></strong><strong><span style="color:#E53333;">goodsName:月卡</span></strong></span>
</p>
<p>
<span style="color:#E53333;line-height:3;font-size:14px;"><strong>goodsName产品名称以“月卡”、“钻石”、“元宝”的形式传入,不带数量;</strong></span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><strong>1.2.6. 注销账号(游戏自身需要登出SDK账号时进行调用)</strong></span>
</p>
<p>
<span style="line-height:3;font-size:14px;">接口:void logout();</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">功能:调用渠道SDK的注销</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">案例:QuickSDK.getInstance().logout();</span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><strong>1.2.7 退出(必接)</strong></span>
</p>
<p>
<span style="line-height:3;font-size:14px;">接口:void exit();</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">功能:退出游戏。需先通过isChannelHasExitDialog接口判断渠道是否有退出框,若渠道有退出框,直接调用QuickSDK的exit接口,若渠道没有退出框,则调用游戏自身的退出框,点击“确定”后,调用QuickSDK的exit接口。<span style="white-space:normal;font-size:14px;">(</span><span style="white-space:normal;font-size:14px;color:#E53333;">注意:游戏需对手机返回键进行监听,监测到有返回点击后再调用SDK的退出接口</span><span style="white-space:normal;font-size:14px;">)</span></span>
</p>
<p>
<span style="line-height:3;font-size:14px;">案例:</span>
</p>
<pre class="brush:js;toolbar:false">if(QuickSDK.getInstance().isChannelHasExitDialog ()){
QuickSDK.getInstance().exit();
} else {
//mExitDialogCanvas.SetActive(true);
//游戏调用自身的退出对话框,点击“确定”后,再调用QuickSDK.getInstance().exit();
}</pre>
<h4>
<span style="line-height:3;font-size:14px;">1.3. 扩展接口</span>
</h4>
<p>
<span style="line-height:3;font-size:14px;"><strong>1.3.1. 获取渠道类型</strong></span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;">接口:String getParentChannelType()</span><span style="font-size:14px;">;</span>
</p>
<p style="white-space:normal;">
<span style="line-height:3;font-size:14px;"><span style="font-size:14px;">功能:</span><span style="font-size:14px;white-space:normal;">获取复制渠道原渠道的渠道编号接口<span style="color:#E53333;">(推荐使用)</span></span></span>
</p>
<p style="white-space:normal;">
<span style="line-height:3;font-size:14px;"><span style="font-size:14px;white-space:normal;"> </span></span>
</p>
<p style="white-space:normal;">
<span style="line-height:3;font-size:14px;">接口:int channelType();</span>
</p>
<p style="white-space:normal;">
功能:获取渠道编号,区分渠道使用此标识
</p>
<p>
<br />
</p>
<p>
<br />
</p>
<p style="white-space:normal;">
<span style="font-size:14px;">比如(渠道code:25643,渠道名:官方自用渠道)的渠道是从(渠道code:134,渠道名:QuickGame_安卓)复制而来,那么通过getParentChannelType接口获取到的值就是134,通过getChannelType接口获取到的就是25643</span>
</p>
<p style="white-space:normal;">
<span style="font-size:14px;"><br />
</span>
</p>
<p style="white-space:normal;">
<span style="font-size:14px;color:#E53333;">注意:</span>
</p>
<p style="white-space:normal;">
<span style="font-size:14px;"><span style="color:#E53333;">为了父渠道跟复制渠道的包能角色互通,推荐游戏使用getParentChannelType接口获取父渠道code做uid拼接</span></span>
</p>
<p style="white-space:normal;">
<span style="font-size:14px;color:#E53333;">如果游戏服务端进行登录验证时有拼接</span><span style="font-size:14px;line-height:3;"><span style="color:#E53333;">channel_code,那么需使用</span><span style="color:#E53333;"></span></span><span style="font-size:14px;color:#E53333;"></span><span style="font-size:14px;color:#E53333;">getChannelType()接口获取的值进行请求</span>
</p>
<p>
<br />
</p>
<p>
<br />
</p>
<p>
<br />
</p>
<p>
<span style="line-height:3;font-size:14px;"><strong>1.3.2 获取用户Id</strong></span>
</p>
<p>
<span style="line-height:3;font-size:14px;">接口:string userId();</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">功能:获取userId</span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><strong>1.3.3 获取配置参数值</strong></span>
</p>
<p>
<span style="line-height:3;font-size:14px;">接口:string getConfigValue (string key);</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">功能:获取游戏自定义参数,自定义参数可在QuickSDK后台配置</span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><strong>1.3.4 是否支持指定方法</strong></span>
</p>
<p>
<span style="line-height:3;font-size:14px;">接口:bool isFunctionSupported(FuncType type);</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">功能:检测是否提供对应功能的函数,功能以枚举列出</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">说明:某些SDK具有打开关闭浮动工具栏、进入用户中心、进入论坛等功能,该方法可以用来判断是否支持,方便游戏中进行判断. 指定方法的定义请参见QuickSDkImp.cs 的FuncType的定义</span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><strong>1.3.5 调用指定方法</strong></span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><span style="font-size:14px;">接口:</span><span style="font-family:Arial;font-size:14px;"><span lang="EN-US" style="font-family:Arial;font-size:14px;"><span style="font-family:Arial;font-size:14px;">void callFunction(FuncType type)</span></span></span></span>
</p>
<span style="line-height:3;font-size:14px;"><span style="font-family:宋体;font-size:small;">
<p>
<span style="font-family:宋体;font-size:small;"> </span>
</p>
<p style="margin:0cm 0cm 0pt;">
<span style="font-size:small;"><span style="font-family:宋体;"><span style="font-size:14px;">回调信息接口:</span><span lang="EN-US" style="font-family:Arial;font-size:14px;">void onSuccess(string infos)</span></span></span>
</p>
<p style="margin:0cm 0cm 0pt;">
<span style="font-size:small;"><span style="font-family:宋体;"><span lang="EN-US" style="font-size:14px;"><span style="line-height:3;font-size:14px;"><span style="font-family:宋体;font-size:small;"><span style="line-height:3;font-size:14px;"><span style="font-size:14px;">功能:</span><span style="font-family:宋体;font-size:small;"><span style="font-family:宋体;"><span style="font-size:small;"><span style="font-size:14px;">某些</span><span lang="EN-US" style="font-size:14px;">SDK</span></span><span style="font-size:14px;">具有打开</span><span lang="EN-US" style="font-size:14px;"><span style="font-size:14px;">/</span></span><span style="font-size:14px;">关闭浮动工具栏、进入用户中心、论坛等功能,该方法可以用来调用这些功能,具体请参见</span><span lang="EN-US" style="font-family:Arial;font-size:14px;"><span style="font-family:Arial;font-size:14px;">QuickSDkImp.cs </span></span><span style="font-size:14px;">类的</span><span lang="EN-US" style="font-family:Arial;font-size:14px;"><span style="font-family:Arial;font-size:14px;">FuncType</span></span><span style="font-size:14px;">的定义</span><span lang="EN-US" style="font-size:14px;"><span style="font-size:14px;">,</span></span><span style="font-size:14px;">回调接口参见</span></span></span><span style="font-family:Arial;font-size:14px;"><span lang="EN-US" style="font-family:Arial;font-size:14px;"><span style="font-family:Arial;font-size:14px;">QuickSDKListener.cs</span></span></span></span></span></span></span></span></span>
</p>
</span></span>
<p>
<span style="line-height:3;font-size:14px;"><span style="font-family:宋体;font-size:small;"><span style="line-height:3;font-size:14px;"><span style="font-family:宋体;font-size:small;"><span style="font-family:宋体;font-size:small;"> </span></span></span></span></span>
</p>
<p style="margin:0cm 0cm 0pt;">
<span style="font-family:宋体;"><span style="font-size:small;"><span style="font-size:14px;">说明:</span><span lang="EN-US" style="font-family:Arial;font-size:14px;"> Infos</span></span><span style="font-size:14px;">为返回的</span><span lang="EN-US" style="font-family:Arial;font-size:14px;"><span style="font-family:Arial;font-size:14px;">json</span></span><span style="font-size:14px;">字符串</span></span>
</p>
<p style="margin:0cm 0cm 0pt;">
<br />
</p>
<p style="margin:0cm 0cm 0pt;">
<span style="font-family:宋体;"><span style="font-size:small;"><span style="font-size:14px;">案例:</span><span style="font-family:宋体;font-size:14px;"><span style="font-size:14px;"><span style="font-family:等线;font-size:14px;"><span style="font-size:14px;"><span style="font-family:宋体;font-size:14px;">实名认证(登录成功之后进行调用,目前渠道基本都做了实名跟防沉迷,游戏不需要再通过此接口返回的实名信息做防沉迷限制)</span></span></span></span></span></span></span>
</p>
<p style="margin:0cm 0cm 0pt;">
<br />
</p>
<p style="margin:0cm 0cm 0pt;">
<span style="font-family:宋体;"><span style="font-size:small;"><span style="font-family:等线;font-size:12pt;"><span><span style="font-family:宋体;"><span lang="EN-US" style="font-family:Arial;font-size:14px;"><span style="font-family:Arial;font-size:14px;">onSuccess</span></span><span style="font-size:14px;">将返回封装的</span><span lang="EN-US" style="font-family:Arial;font-size:14px;"><span style="font-family:Arial;font-size:14px;">json</span></span><span style="font-size:14px;">实体;</span><span lang="EN-US" style="font-size:14px;"><span style="font-size:14px;"><span style="font-family:Arial;font-size:14px;">uid </span><span style="font-size:14px;">(</span></span></span><span style="font-size:14px;">表示用户</span><span lang="EN-US" style="font-size:14px;"><span style="font-size:14px;">id)</span></span><span style="font-size:14px;">,</span><span lang="EN-US" style="font-size:14px;"><span style="font-size:14px;">age (</span></span><span style="font-size:14px;">表示年龄</span><span lang="EN-US" style="font-size:14px;"><span style="font-size:14px;">, </span></span><span style="font-size:14px;">如果渠道没返回默认为</span><span lang="EN-US" style="font-size:14px;"><span style="font-size:14px;">-1)</span></span><span style="font-size:14px;">,</span><span lang="EN-US" style="font-size:14px;"><span style="font-size:14px;"><span style="font-family:Arial;font-size:14px;">realName</span><span style="font-size:14px;"> (</span></span></span><span style="font-size:14px;">是否已实名:</span><span lang="EN-US" style="font-size:14px;"><span style="font-size:14px;"> true</span></span><span style="font-size:14px;">表示已实名,</span><span lang="EN-US" style="font-size:14px;"><span style="font-size:14px;"> false</span></span><span style="font-size:14px;">表示未实名;如果渠道没返回默认为</span><span lang="EN-US" style="font-size:14px;"><span style="font-size:14px;"> false)</span></span><span style="font-size:14px;">,</span><span lang="EN-US" style="font-size:14px;"><span style="font-size:14px;">resumeGame (</span></span><span style="font-size:14px;">渠道实名认证失败之后是否可以继续游戏
:</span><span lang="EN-US" style="font-size:14px;"><span style="font-size:14px;">true</span></span><span style="font-size:14px;">表示可以,</span><span lang="EN-US" style="font-size:14px;"><span style="font-size:14px;"> false</span></span><span style="font-size:14px;">表示不可以;如果渠道没返回默认为</span><span lang="EN-US" style="font-size:14px;"><span style="font-size:14px;"> true)</span></span><span style="font-size:14px;">,</span><span lang="EN-US" style="font-size:14px;"><span style="font-size:14px;">other (</span></span><span style="font-size:14px;">预留字段,如果渠道没返回默认为</span><span lang="EN-US" style="font-size:14px;"><span style="font-size:14px;">""</span></span><span style="font-size:14px;">的字符串</span><span lang="EN-US" style="font-size:14px;"><span style="font-size:14px;">); FunctionType(</span></span><span style="font-size:14px;">表示调用的功能</span><span lang="EN-US" style="font-size:14px;"><span style="font-size:14px;"><span style="font-size:14px;">, </span><span style="font-family:Arial;font-size:14px;">FuncType.QUICK_SDK_FUNC_TYPE_REAL_NAME_REGISTER</span></span></span><span style="font-size:14px;">的值</span><span lang="EN-US" style="font-size:14px;"><span style="font-size:14px;">105</span></span><span style="font-size:14px;">为</span><span lang="EN-US" style="font-size:14px;"><span style="font-size:14px;">,</span></span><span style="font-size:14px;">表示实名认证</span><span lang="EN-US" style="font-size:14px;"><span style="font-size:14px;">):</span></span></span></span></span></span></span>
</p>
<p style="margin:0cm 0cm 0pt;">
<span style="font-family:宋体;"><span style="font-size:small;"><span style="font-family:等线;font-size:12pt;"><span><span style="font-family:宋体;font-size:small;"></span></span></span></span></span>
</p>
<p style="margin:0cm 0cm 0pt;">
<br />
</p>
<pre class="brush:js;toolbar:false">public void onSuccess(string infos)
{
onSucceed(infos);
}
QuickSDK.getInstance().callFunction(FuncType.QUICK_SDK_FUNC_TYPE_REAL_NAME_REGISTER);
例如,测试渠道的回调infos结果形式为:
{"uid":"1178471402501092","age":20,"realName":true,"resumeGame":true,"other":"","FunctionType":105}
</pre>
<p>
<br />
</p>
<p style="margin:0cm 0cm 0pt;">
<br />
</p>
<p style="margin:0cm 0cm 0pt;">
<br />
</p>
<p style="margin:0cm 0cm 0pt;">
<span style="font-family:宋体;"><span style="font-size:small;"><span style="font-family:宋体;font-size:small;"></span></span></span>
</p>
<p>
<span style="line-height:3;font-size:14px;"></span>
</p>
<span style="line-height:3;font-size:14px;"><strong>1.3.6 调用QuickSDK客服插件</strong></span>
<p>
<span style="line-height:3;font-size:14px;">接口:<span style="font-family:Arial;">void enterYunKeFuCenter(GameRoleInfo gameRoleInfo);</span></span>
</p>
<p style="white-space:normal;">
<span style="line-height:3;font-size:14px;">功能:首先需要到渠道配置界面添加<span style="font-family:Arial;">QuickSDKCustomService</span>插件 ,然后母包调用该接口,再进行打渠道包操作,打完之后该接口即可正常吊起客服</span>
</p>
<p style="white-space:normal;">
<br />
</p>
<p style="white-space:normal;">
<span style="line-height:3;font-size:14px;"><strong>1.3.7 调用渠道SDK分享功能(仅限Android)</strong></span>
</p>
<p style="text-align:left;white-space:normal;">
<span style="line-height:3;font-size:14px;"><strong>ShareInfo类字段说明<br />
</strong></span>
</p>
<p style="white-space:normal;">
<span style="line-height:3;font-size:14px;"><strong>
<table bordercolor="#000000" style="width:100%;" border="1" cellspacing="0" cellpadding="2">
<tbody>
<tr>
<td style="text-align:left;">
<span style="line-height:2.5;font-size:14px;">参数名称</span>
</td>
<td style="text-align:left;">
<span style="line-height:2.5;font-size:14px;">数据类型</span>
</td>
<td style="text-align:left;">
<span style="line-height:2.5;font-size:14px;">说明</span>
</td>
</tr>
<tr>
<td style="text-align:left;">
<span style="line-height:2.5;font-size:14px;">title</span><span style="color:#323232;font-family:微软雅黑, " font-size:14px;white-space:normal;background-color:#ffffff;line-height:2.5;"="">string</span>
</td>
<td style="text-align:left;">
<span style="color:#323232;font-family:微软雅黑, " font-size:14px;white-space:normal;background-color:#ffffff;line-height:2.5;"="">string</span>
</td>
<td style="text-align:left;">
<span style="line-height:2.5;font-size:14px;">分享标题</span><br />
</td>
</tr>
<tr>
<td style="text-align:left;">
<span style="line-height:2.5;font-size:14px;">content</span><br />
</td>
<td style="text-align:left;">
<span style="color:#323232;font-family:微软雅黑, " font-size:14px;white-space:normal;background-color:#ffffff;line-height:2.5;"="">string</span><br />
</td>
<td style="text-align:left;">
<span style="line-height:2.5;font-size:14px;">分享内容</span><br />
</td>
</tr>
<tr>
<td style="text-align:left;">
<span style="line-height:2.5;font-size:14px;">imgPath</span><br />
</td>
<td style="text-align:left;">
<span style="color:#323232;font-family:微软雅黑, " font-size:14px;white-space:normal;background-color:#ffffff;line-height:2.5;"="">string</span><br />
</td>
<td style="text-align:left;">
<span style="line-height:2.5;font-size:14px;">分享图片本地地址</span><br />
</td>
</tr>
<tr>
<td style="text-align:left;">
<span style="line-height:2.5;font-size:14px;">imgUrl</span><br />
</td>
<td style="text-align:left;">
<span style="color:#323232;font-family:微软雅黑, " font-size:14px;white-space:normal;background-color:#ffffff;line-height:2.5;"="">string</span><br />
</td>
<td style="text-align:left;">
<span style="line-height:2.5;font-size:14px;">分享图片网络地址</span><br />
</td>
</tr>
<tr>
<td style="text-align:left;">
<span style="line-height:2.5;font-size:14px;">url</span><br />
</td>
<td style="text-align:left;">
<span style="color:#323232;font-family:微软雅黑, " font-size:14px;white-space:normal;background-color:#ffffff;line-height:2.5;"="">string</span><br />
</td>
<td style="text-align:left;">
<span style="line-height:2.5;font-size:14px;">分享链接</span><br />
</td>
</tr>
<tr>
<td style="text-align:left;">
<span style="line-height:2.5;font-size:14px;">type</span><br />
</td>
<td style="text-align:left;">
<span style="color:#323232;font-family:微软雅黑, " font-size:14px;white-space:normal;background-color:#ffffff;line-height:2.5;"="">string</span><br />
</td>
<td style="text-align:left;">
<span style="line-height:2.5;font-size:14px;">分享类型</span><br />
</td>
</tr>
<tr>
<td style="text-align:left;">
<span style="line-height:2.5;font-size:14px;">shareTo</span><br />
</td>
<td style="text-align:left;">
<span style="color:#323232;font-family:微软雅黑, " font-size:14px;white-space:normal;background-color:#ffffff;line-height:2.5;"="">string</span><br />
</td>
<td style="text-align:left;">
<span style="line-height:2.5;font-size:14px;">分享到哪里</span><br />
</td>
</tr>
<tr>
<td style="text-align:left;">
<span style="line-height:2.5;font-size:14px;">extenal</span><br />
</td>
<td style="text-align:left;">
<span style="color:#323232;font-family:微软雅黑, " font-size:14px;white-space:normal;background-color:#ffffff;line-height:2.5;"="">string</span><span style="line-height:2.5;font-size:14px;"></span><br />
</td>
<td style="text-align:left;">
<span style="line-height:2.5;font-size:14px;">额外备注</span><br />
</td>
</tr>
</tbody>
</table>
</strong></span>
</p>
<p style="white-space:normal;">
<span style="line-height:3;font-size:14px;">接口:void callSDKShare(ShareInfo shareInfo);</span>
</p>
<p style="white-space:normal;">
<span style="line-height:3;font-size:14px;">功能:传入QuickSDK规定的分享类的对象(关于对象的参数,需和渠道协商之后传入),打出渠道包之后即可吊起对应渠道的分享功能;</span>
</p>
<p>
<br />
</p>
<p>
<span style="font-size:14px;"><strong>1.3.8 </strong></span><span style="font-family:等线;font-size:12pt;"><span><span style="font-size:14px;"><strong>新增获取</strong></span><span style="font-size:14px;"><strong>DeviceId</strong></span><span style="font-size:14px;"><strong>接口</strong></span></span></span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><span style="font-size:14px;"><span style="line-height:3;font-size:14px;"><span style="font-size:14px;">接口:</span><span style="font-family:Arial;font-size:14px;"><span style="font-family:Arial;font-size:14px;">getDeviceId()</span></span></span> </span></span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><span style="font-size:14px;">功能:</span><span style="font-family:等线;font-size:12pt;"><span><span style="font-size:14px;">获取设备的</span><span style="font-family:Arial;font-size:14px;"><span style="font-family:Arial;font-size:14px;">DeviceId</span></span></span></span></span>
</p>
<p>
<br />
</p>
<p>
<br />
</p>
<h3>
<span style="line-height:3;font-size:14px;">2<strong>. android部分</strong></span>
</h3>
<p>
<br />
</p>
<h4>
<span style="line-height:3;font-size:14px;"><strong>2.1. 设置产品参数</strong></span>
</h4>
<p>
<span style="line-height:3;font-size:14px;">打开导入的aar(<span style="color:#E53333;">注意不是解压,而是直接用压缩工具打开</span>),然后再找到quicksdk.xml文件,修改文件中的product_code以及product_key参数为游戏自己的参数</span>
</p>
<p>
<img src="https://staticsite.quickapi.net/data/newFiles/20250224/202502241819363gpN452.png" alt="" />
</p>
<p>
<img src="https://staticsite.quickapi.net/data/newFiles/20250224/20250224182232mlXM591.png" alt="" />
</p>
<p>
<br />
</p>
<h4>
<span style="line-height:3;font-size:14px;"><strong>2.2. 修改xml文件</strong></span>
</h4>
<p>
<span style="line-height:3;font-size:14px;">打开aar后,找到AndroidManifest.xml文件,修改游戏名、横竖屏设置</span>
</p>
<p>
<img src="https://staticsite.quickapi.net/data/newFiles/20250224/2025022418212473qu453.png" alt="" />
</p>
<p>
<img src="https://staticsite.quickapi.net/data/newFiles/20250224/20250224182332cdi9204.png" alt="" />
</p>
<p>
<br />
</p>
<p>
<br />
</p>
<p>
<strong style="color:#E53333;font-size:14px;">提示:</strong>
</p>
<p>
<span style="line-height:3;font-size:14px;">部分渠道targetVersion为28时9.0设备http请求失败,如果游戏没有做网络适配,需要在<span style="white-space:normal;font-size:14px;">AndroidManifest.xml文件添加如下代码</span></span>
</p>
<p>
<span style="line-height:3;font-size:14px;"> </span>
</p>
<pre class="brush:js;toolbar:false">android:usesCleartextTraffic="true"</pre>
<p>
<span style="line-height:3;font-size:14px;"><br />
</span>
</p>
<h4>
<span style="line-height:3;font-size:14px;">2<strong>.3. 设置游戏icon图片</strong></span>
</h4>
<p>
<span style="line-height:3;font-size:14px;">打开aar后,将ic_launcher.png图片替换为游戏自己的icon图片(删除后,将替换的图片拖进解压工具的界面即可,实测7z可以实现)</span>
</p>
<p>
<img src="https://staticsite.quickapi.net/data/newFiles/20250224/20250224182316Bixc238.png" alt="" />
</p>
<p>
<br />
</p>
<h4>
<span style="line-height:3;font-size:14px;">2<strong>.4. 导出母包</strong></span>
</h4>
<p>
<span style="line-height:3;font-size:14px;">参考以下步骤,导出apk,导出的apk即为安卓母包</span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20210408/20210408143948fhxZ968.png" alt="" /></span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20210408/20210408144037AdkZ343.png" alt="" /></span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20210408/20210408144003nN8z900.png" alt="" style="font-size:14px;white-space:normal;" /></span>
</p>
<p>
<span style="line-height:3;font-size:14px;">至此,安卓部分接入完毕</span>
</p>
<p>
<span style="line-height:3;font-size:14px;color:#E53333;"><strong>另注意:</strong></span>
</p>
<p>
<span style="line-height:3;font-size:14px;">1. QuickSDK 已经经过了混淆,如果要混淆java代码,请不要混淆联编的jar包中的类。可以添加以下类到proguard配置,排除在混淆之外:<br />
-keep class com.quicksdk.** { *; }<br />
</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">2. 如果游戏自己做不了隐私弹窗,可以调用QuickSDK的弹窗接口,详细操作见文档:<u><a href="https://www.quicksdk.com/doc-1042.html?cid=32" target="_blank">游戏如何调用QuickSDK的隐私弹窗</a></u><a href="https://www.quicksdk.com/doc-1042.html?cid=32" target="_blank"><u></u></a></span>
</p>
<p>
<span style="line-height:3;font-size:14px;">3. Android部分中修改参数和配置的操作,均采用解压工具打开aar来实现。若游戏需要改动qk的接入逻辑,则需要新建一个空白的安卓工程,导入QuickSDKFrameworkForUnityAndroid_AS,修改QuickUnityPlayerproxyActivity.java中的逻辑,最后导出新的aar,并替换到游戏工程中去<br />
4. 若打包工程中出现manifest文件或者gradle文件冲突,开发者需在unity引擎配置一下,生成该工程自定义的manifest(或者gradle)后,处理冲突<br />
<br />
</span>
</p>
<p>
<br />
</p>
<h3>
<span style="line-height:3;font-size:14px;">3<strong>. iOS部分</strong></span>
</h3>
<p>
<br />
</p>
<p>
<span style="line-height:3;font-size:14px;">用unity3d导出xcode工程并打开</span>
</p>
<h4>
<span style="line-height:3;font-size:14px;">3<strong>.1. 导出时转屏设置</strong></span>
</h4>
<p>
<span style="line-height:3;font-size:14px;"><strong>3</strong><strong>.1.1. 横屏游戏</strong></span>
</p>
<p>
<span style="line-height:3;font-size:14px;">· u3d导出时设置如下图,u3d的设置会控制游戏的旋转</span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20210408/20210408144051Zkfg390.png" alt="" /></span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><strong>3.1.2 竖屏游戏</strong></span>
</p>
<p>
<span style="line-height:3;font-size:14px;">竖屏游戏不需要特殊处理,直接在u3d中勾选竖屏导出xcode即可。</span>
</p>
<h4>
<span style="line-height:3;font-size:14px;"><strong>3.2. 添加quicksdk资源库</strong></span>
</h4>
<p>
<span style="line-height:3;font-size:14px;">将QuickSDKForIOS添加进工程</span>
</p>
<p>
<img src="https://staticsite.quickapi.net/data/newFiles/20240801/20240801133618rMrG280.png" alt="" />
</p>
<p>
<br />
</p>
<p>
<span style="line-height:3;font-size:14px;"><span style="color:#E53333;">Unity2019之后的版本导出的Xcode工程包含 UnityFramework 动态库特别说明:</span><br />
添加SDK到Xcode工程时需注意</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">1. QuickSDK.framework, QuickSDK_ios.h, QuickSDK_ios.mm, QuickSDKInterfaceUnity.h, QuickSDKInterfaceUnity.mm五个文件TargetMembership仅需关联到 UnityFramework<br />
2. QuickChannel.framework为动态库TargetMembership 需同时关联到 UnityFramework和Unity-iPhone<br />
</span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><br />
</span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20221109/20221109151414LF57248.png" alt="" /><br />
</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">QuickChannel.framework 是动态库添加时设置为Embed & Sign,如下图:</span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20240801/20240801120518RCYA703.png" alt="" /><br />
</span>
</p>
<p>
<span style="font-size:14px;"></span>
</p>
<h4>
<span style="line-height:3;font-size:14px;">3<strong>.3. 添加工程配置</strong></span>
</h4>
<p>
<span style="line-height:3;font-size:14px;">打开项目工程配置,添加库的链接参数,在项目工程配置中,找到Linking中的Linking Other Linker Flags,添加参数: -ObjC,如果包含UnityFramework这个Target也需要添加-ObjC</span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20210408/202104081441127FIh363.png" alt="" /></span>
</p>
<p>
<span style="line-height:3;font-size:14px;">Build Settings->Search Paths->Library Search Paths中的所有路径将””去掉</span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20210408/20210408144124FpdV885.png" alt="" /></span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><span style="font-size:14px;white-space:normal;">PROJECT->Info->Configurations 仅保留Release和Debug 两项</span><br />
</span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20210408/20210408144135I5QX212.png" alt="" /><br />
</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">工程info.plist文件里配置允许访问http网络<br />
</span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20210408/20210408144210jshR290.png" alt="" /> </span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><br />
</span>
</p>
<h4>
<strong><span style="line-height:3;font-size:14px;">3.4. 添加方法调用</span></strong>
</h4>
<p>
<span style="line-height:3;font-size:14px;">首先导入头文件#import <smpcquicksdk smpcquicksdk.h=""></smpcquicksdk></span>
</p>
<p>
<span style="line-height:3;font-size:14px;">以及#import "QuickSDK_ios.h"</span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20210408/202104081442253aFi808.png" alt="" /></span>
</p>
<p>
<span style="line-height:3;font-size:14px;color:#000000;">添加初始化方法调用,<span style="color:#E53333;">设置初始化参数Productcode、ProductKey</span>,在UnityAppController.mm中添加</span>
</p>
<p>
<span style="line-height:3;font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20210408/20210408144236I6sy891.png" alt="" /></span>
</p>
<p>
<span style="color:#E53333;font-size:14px;"><strong></strong></span>
</p>
<div>
<strong><strong style="color:#E53333;font-size:14px;white-space:normal;">注:</strong></strong><strong><strong style="color:#E53333;font-size:14px;">
<div style="display:inline !important;">
初始化接口需要再设置应用的window之后调用
</div>
</strong></strong><strong><strong style="color:#E53333;font-size:14px;white-space:normal;"><br />
</strong> </strong>
</div>
<strong><br />
</strong>
<p>
<br />
</p>
<p>
<br />
</p>
<h4>
<span style="line-height:3;font-size:14px;"><strong>3.5 Unity兼容设置</strong></span>
</h4>
<p>
<span style="line-height:3;font-size:14px;">iOS Unity5.X以下如果回调时发生崩溃请将QuickSDK_ios.mm中-(void)sendU3dMessage:(NSString *)messageName :(NSDictionary *)dict修改一下:</span>
</p>
<p>
<span style="line-height:3;font-size:14px;"> 打开</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">// char *gameObjectNameCStr = (char *)malloc(100);</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">// strcpy(gameObjectNameCStr, [_gameObjectName UTF8String]);</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">// char *messageNameCStr = (char *)malloc(100);</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">// strcpy(messageNameCStr, [messageName UTF8String]);</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">// char *jsonStringCStr = (char *)malloc(1000);</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">// strcpy(jsonStringCStr, [jsonString UTF8String]);</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">// UnitySendMessage(gameObjectNameCStr, messageNameCStr, jsonStringCStr);</span>
</p>
<p>
<span style="line-height:3;font-size:14px;"> 关闭</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">UnitySendMessage([_gameObjectName UTF8String], [messageName UTF8String], [jsonString UTF8String]);</span>
</p>
<p>
<span style="line-height:3;font-size:14px;"> 打开</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">// char *gameObjectNameCStr = (char *)malloc(100);</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">// strcpy(gameObjectNameCStr, [_gameObjectName UTF8String]);</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">// char *messageNameCStr = (char *)malloc(100);</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">// strcpy(messageNameCStr, [messageName UTF8String]);</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">// UnitySendMessage(gameObjectNameCStr, messageNameCStr, "");</span>
</p>
<p>
<span style="line-height:3;font-size:14px;"> 关闭</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">UnitySendMessage([_gameObjectName UTF8String], [messageName UTF8String], "");</span>
</p>
<p>
<br />
</p>
<p>
<span style="line-height:3;font-size:14px;">在didFinishLauchingWithOptions中调用注册事件监听以及调用初始化方法,其中productKey和productCode由QuickSDK后台获取。</span>
</p>
<p>
<span style="line-height:3;font-size:14px;">至此,母包工程就已经完成,可以编译运行以及使用quick打包工具一键生成其它渠道包,打包工具的使用请参考打包工具使用说明。</span>
</p>
<p>
<span style="color:#E53333;line-height:3;font-size:14px;"><strong>注:如果打包出来的渠道ipa在手机上运行时异常,可以使用工具生成的调试工程进行调试,调试工程名为游戏工程名-渠道号.xcodeproj,路径在游戏工程同一目录下。</strong></span>
</p>
<p>
<br />
</p>
<p>
<br />
</p>
<p>
<br />
</p>
<p>
<br />
</p>