公共SDK扩展接口接入文档.md
15 KB
公共SDK扩展接口接入文档
接入必读
`扩展接口的调用均通过反射实现,方法名需要和公共协商统一,其调用一般分为三步:
1.先判断是否可使用该功能( cp通过该方法的返回值判断是否在游戏界面显示相应的入口 ):
boolean returnBool = PoolSdkHelper.hasFunction({方法名});
2.获取状态。当第一步中的结果返回 true 时,方才执行第二步,否则不执行;第二步非必接接口,其执行条件为当需要获取某个状态(比如:绑定,推送)时调用,否则可跳过此步骤直接执行第三步:
boolean returnState = PoolSdkHelper.hasFunction({方法名});
3.具体设置。当第一步中的结果返回 true 时,如无需执行第二步请直接执行此步,否则请先执行第二步再执行此步骤,这一步的调用结果会通过游戏初始化传入的监听器传递给游戏,具体的返回码请见具体接口说明:
Map<Object,Object> map = new HashMap<>();
PoolSdkHelper.callfunc({方法名},map);`
具体接口说明如下
第一步判断是否可使用该功能
接口名 | 方法名 | 参数 | 返回结果 | |
---|---|---|---|
Facebook好友界面 | hasFaceBookFriendsView | 无参数 | true 执行第三步的相应接口,false 不显示入口 |
优惠券 | hasCoupon | 无参数 | true 执行第三步的相应接口,false 不显示入口 |
分享 | hasShareView | null | Json字符串,空串代表不显示任何入口,否则cp通过解析 |
json字符串,然后通过对应的分享平台key,获取 | |||
相应的值来决定是否显示入口,"true"代表显示, | |||
"false"代表不显示,目前支持的分享平台key有 | |||
facebook分享:"facebook" | |||
facebook截屏分享:"facebook_capture" | |||
twitter分享:"twitter" | |||
twitter截屏分享:"twitter_capture" | |||
line截屏分享:"line_capture" | |||
instagram截屏分享:"instagram_capture" | |||
返回事例:{"facebook":"true", | |||
"facebook_capture":"true", | |||
"instagram_capture":"false"} | |||
删除账号 | hasDeleteMember | 无参数 | true 执行第三步的相应接口,false 不显示入口 |
显示公告 | hasShowNotice | 无参数 | true 执行第三步的相应接口,false 不显示入口 |
显示cafe窗口 | hasNaverCafePlug | 无参数 | true 执行第三步的相应接口,false 不显示入口 |
谷歌评论 | hasGoogleComment | 无参数 | true 执行第三步的相应接口,false 不显示入口 |
绑定账号 | hasLinkedAccountView | null | Json字符串,空串代表不显示任何入口,否则cp通过解析 |
json字符串,然后通过对应的绑定平台key,获取 | |||
相应的值来决定是否显示入口,"true"代表显示, | |||
"false"代表不显示,目前支持的绑定平台key有 | |||
facebook绑定:"facebook" | |||
google绑定:"google" | |||
不确定绑定平台:"other" | |||
返回事例:{"facebook":"true", | |||
"google":"true", | |||
"other":"false"} | |||
设置推送 | hasPushView | null | Json字符串,空串代表不显示任何入口,否则cp通过解析 |
json字符串,然后通过对应的推送类型key,获取 | |||
相应的值来决定是否显示入口,"true"代表显示, | |||
"false"代表不显示,目前支持的推送类型key有 | |||
全体推送:"enable" | |||
夜间推送:"night" | |||
广告推送:"ad" | |||
返回事例:{"enable":"true", | |||
"night":"true", | |||
"ad":"false"} |
第二步获取状态(不用获取状态的功能请跳过此步骤执行第三步)
接口名 | 方法名 | 参数 | 返回结果 |
---|---|---|---|
绑定账号 | getLinkedAccountStatus | Map集合,key表示绑定平台,比如谷歌就传 | "true" 表示绑定了该平台 |
google,facebook就传facebook,不确定 | "false" 表示未绑定该平台 | ||
平台传other;value传""就好 | |||
设置推送 | getPushStatus | Map集合,key表示推送类型,比如全体推送 | "true" 表示设置了该推送 |
就传enable,夜间推送就传night,广告推送 | "false" 表示未设置该推送 | ||
就传ad;value传""就好 |
第三步设置功能
接口名 | 方法名 | 参数 | 返回状态码 |
---|---|---|---|
Facebook好友界面 | showFaceBookFriendsView | null | 无 |
优惠券 | coupon | Map集合,key传优惠券码,value为"" | 成功 1102 失败 1202 |
分享 | showShareView | Map集合,key表示分享类型,value为"" | 成功 1104 失败 1204 |
facebook分享:"facebook" | |||
facebook截屏分享:"facebook_capture" | |||
twitter分享:"twitter" | |||
twitter截屏分享:"twitter_capture" | |||
line截屏分享:"line_capture" | |||
instagram截屏分享:"instagram_capture" | |||
删除账号 | deleteMember | null | 成功 1107 失败 1207 |
显示公告 | showNotice | null | 无 |
显示cafe窗口 | showNaverCafePlug | null | 无 |
谷歌评论 | showGoogleComment | null | 成功 1106 失败 1206 |
绑定账号(绑定) | createLinkingAccount | Map集合,key表示绑定平台,比如谷歌就传 | 成功 1100 失败 1200 |
google,facebook就传facebook,不确定 | |||
平台传other;value传""就好 | |||
绑定账号(解绑) | deleteLinkingAccount | Map集合,key表示绑定平台,比如谷歌就传 | 成功 1101 失败 1201 |
google,facebook就传facebook,不确定 | |||
平台传other;value传""就好 | |||
设置推送(允许) | setPushEnable | Map集合,key表示推送类型,比如全体推送 | 成功 1103 失败 1203 |
就传enable,夜间推送就传night,广告推送 | |||
就传ad;value传""就好 | |||
设置推送(不允许) | setPushDisable | Map集合,key表示推送类型,比如全体推送 | 成功 1105 失败 1205 |
就传enable,夜间推送就传night,广告推 送 | |||
就传ad;value传""就好 |
接入事例
无需进行第二步以 显示公告 为例
`
boolean hasShowNotice = PoolSdkHelper.hasFunction("hasShowNotice");
if(hasShowNotice){
//显示公告入口
}else{
//不显示公告入口`
}
`
用户点击公告时
`
PoolSdkHelper.callFunc("showNotice",null);此结果的返回码如上表格
`
需要进行第二步获取状态以 绑定账号 为例
`
String hasLinkedAccountView = PoolSdkHelper.callFunc("hasLinkedAccountView",null);
if(hasLinkedAccountView==""){
//不显示绑定入口
}else{
JSONObject jsonObject = new JSONObject(hasLinkedAccountView);
String itemGoogle = jsonObject.get("google");
if(itemGoogle=="true"){
//显示google的绑定入口
}else{
//不显示google的绑定入口
}
}
`
获取绑定状态,以便知道显示解绑还是绑定视图
`
Map<Object,Object> map = new HashMap<>();
map.put("google","");//以谷歌为例
String linkedAccountStatus = PoolSdkHelper.callFunc("getLinkedAccountStatus",map);
`
用户点击按钮改变状态时
`
if("true" == linkedAccountStatus){//已经绑定了
//此时为解绑
Map<Object,Object> map = new HashMap<>();
map.put("google","");//以谷歌为例
PoolSdkHelper.callFunc("deleteLinkingAccount",map);//此结果的返回码如上表格
}
if("false" == linkedAccountStatus){//没有绑定
//此时为去绑定
Map<Object,Object> map = new HashMap<>();
map.put("google","");//以谷歌为例
PoolSdkHelper.callFunc("createLinkingAccount",map);//此结果的返回码如上表格
}
`