tangweijun

Delete 公共SDK扩展接口接入文档.md

1 -# 公共SDK扩展接口接入文档 #
2 -
3 -## 接入必读
4 - `扩展接口的调用均通过反射实现,方法名需要和公共协商统一,其调用一般分为三步:
5 - 1.先判断是否可使用该功能( cp通过该方法的返回值判断是否在游戏界面显示相应的入口 ):
6 - boolean returnBool = PoolSdkHelper.hasFunction({方法名});//此处为单入口调用
7 -
8 - String jsonReturn = PoolSdkHelper.callfunc({方法名},null);//此处为同一功能的多入口,比如绑定分google和facebook等,cp需解析判断
9 - 2.获取状态。当第一步中的结果单入口返回 true 或多入口返回 "" 时,方才执行第二步,否则不执行;第二步非必接接口,其执行条件为当需要获取某个状态(比如:绑定,推送)时调用,否则可跳过此步骤直接执行第三步:
10 - Map<Object,Object> map = new HashMap<>();
11 - String returnState = PoolSdkHelper.callfunc({方法名},map);
12 - 3.具体设置。如无需执行第二步请直接执行此步,否则请先执行第二步再执行此步骤,这一步的调用结果会通过游戏初始化传入的监听器传递给游戏,具体的返回码请见具体接口说明:
13 - Map<Object,Object> map = new HashMap<>();
14 - PoolSdkHelper.callfunc({方法名},map);`
15 -
16 -### 具体接口说明如下
17 -
18 -#### 第一步判断是否可使用该功能
19 -
20 -| 接口名 | 方法名 | 参数 | 返回结果 |
21 -|-----------------------------|-------------------------|------------|----------------------------------------|
22 -| Facebook好友界面 | hasFaceBookFriendsView | 无参数 | true 执行第三步的相应接口,false 不显示入口 |
23 -| | | | |
24 -| 优惠券 | hasCoupon | 无参数 | true 执行第三步的相应接口,false 不显示入口 |
25 -| | | | |
26 -| 分享 | hasShareView | null | Json字符串,空串代表不显示任何入口,否则cp通过解析 |
27 -| | | | json字符串,然后通过对应的分享平台key,获取 |
28 -| | | | 相应的值来决定是否显示入口,"true"代表显示, |
29 -| | | | "false"代表不显示,目前支持的分享平台key有 |
30 -| | | | facebook分享:"facebook" |
31 -| | | | facebook截屏分享:"facebook_capture" |
32 -| | | | twitter分享:"twitter" |
33 -| | | | twitter截屏分享:"twitter_capture" |
34 -| | | | line截屏分享:"line_capture" |
35 -| | | | instagram截屏分享:"instagram_capture" |
36 -| | | | 返回事例:{"facebook":"true", |
37 -| | | | "facebook_capture":"true", |
38 -| | | | "instagram_capture":"false"} |
39 -| | | | |
40 -| 删除账号 | hasDeleteMember | 无参数 | true 执行第三步的相应接口,false 不显示入口 |
41 -| | | | |
42 -| 显示公告 | hasShowNotice | 无参数 | true 执行第三步的相应接口,false 不显示入口 |
43 -| | | | |
44 -| 显示cafe窗口 | hasNaverCafePlug | 无参数 | true 执行第三步的相应接口,false 不显示入口 |
45 -| | | | |
46 -| 谷歌评论 | hasGoogleComment | 无参数 | true 执行第三步的相应接口,false 不显示入口 |
47 -| | | | |
48 -| 绑定账号 | hasLinkedAccountView | null | Json字符串,空串代表不显示任何入口,否则cp通过解析 |
49 -| | | | json字符串,然后通过对应的绑定平台key,获取 |
50 -| | | | 相应的值来决定是否显示入口,"true"代表显示, |
51 -| | | | "false"代表不显示,目前支持的绑定平台key有 |
52 -| | | | facebook绑定:"facebook" |
53 -| | | | google绑定:"google" |
54 -| | | | 不确定绑定平台:"other" |
55 -| | | | 返回事例:{"facebook":"true", |
56 -| | | | "google":"true", |
57 -| | | | "other":"false"} |
58 -| | | | |
59 -| 设置推送 | hasPushView | null | Json字符串,空串代表不显示任何入口,否则cp通过解析 |
60 -| | | | json字符串,然后通过对应的推送类型key,获取 |
61 -| | | | 相应的值来决定是否显示入口,"true"代表显示, |
62 -| | | | "false"代表不显示,目前支持的推送类型key有 |
63 -| | | | 全体推送:"enable" |
64 -| | | | 夜间推送:"night" |
65 -| | | | 广告推送:"ad" |
66 -| | | | 返回事例:{"enable":"true", |
67 -| | | | "night":"true", |
68 -| | | | "ad":"false"} |
69 -
70 -#### 第二步获取状态(不用获取状态的功能请跳过此步骤执行第三步)
71 -
72 -| 接口名 | 方法名 | 参数 | 返回结果 |
73 -|------------|--------------------------|---------------------------------------|------------------------------|
74 -| 绑定账号 | getLinkedAccountStatus | Map集合,key表示绑定平台,比如谷歌就传 | "true" 表示绑定了该平台 |
75 -| | | google,facebook就传facebook,不确定 | "false" 表示未绑定该平台 |
76 -| | | 平台传other;value传""就好 | |
77 -| | | | |
78 -| 设置推送 | getPushStatus | Map集合,key表示推送类型,比如全体推送 | "true" 表示设置了该推送 |
79 -| | | 就传enable,夜间推送就传night,广告推送 | "false" 表示未设置该推送 |
80 -| | | 就传ad;value传""就好 | |
81 -
82 -
83 -#### 第三步设置功能
84 -
85 -| 接口名 | 方法名 | 参数 | 返回状态码 |
86 -|-----------------------|---------------------------|------------------------------------------|-----------------------|
87 -| Facebook好友界面 | showFaceBookFriendsView | null | 无 |
88 -| | | | |
89 -| 优惠券 | coupon | Map集合,key传优惠券码,value为"" | 成功 1102 失败 1202 |
90 -| | | | |
91 -| 分享 | showShareView | Map集合,key表示分享类型,value为"" | 成功 1104 失败 1204 |
92 -| | | facebook分享:"facebook" | |
93 -| | | facebook截屏分享:"facebook_capture" | |
94 -| | | twitter分享:"twitter" | |
95 -| | | twitter截屏分享:"twitter_capture" | |
96 -| | | line截屏分享:"line_capture" | |
97 -| | | instagram截屏分享:"instagram_capture" | |
98 -| | | | |
99 -| 删除账号 | deleteMember | null | 成功 1107 失败 1207 |
100 -| | | | |
101 -| 显示公告 | showNotice | null | 无 |
102 -| | | | |
103 -| 显示cafe窗口 | showNaverCafePlug | null | 无 |
104 -| | | | |
105 -| 谷歌评论 | showGoogleComment | null | 成功 1106 失败 1206 |
106 -| | | | |
107 -| 绑定账号(绑定) | createLinkingAccount | Map集合,key表示绑定平台,比如谷歌就传 | 成功 1100 失败 1200 |
108 -| | | google,facebook就传facebook,不确定 | |
109 -| | | 平台传other;value传""就好 | |
110 -| | | | |
111 -| 绑定账号(解绑) | deleteLinkingAccount | Map集合,key表示绑定平台,比如谷歌就传 | 成功 1101 失败 1201 |
112 -| | | google,facebook就传facebook,不确定 | |
113 -| | | 平台传other;value传""就好 | |
114 -| | | | |
115 -| 设置推送(允许) | setPushEnable | Map集合,key表示推送类型,比如全体推送 | 成功 1103 失败 1203 |
116 -| | | 就传enable,夜间推送就传night,广告推送 | |
117 -| | | 就传ad;value传""就好 | |
118 -| | | | |
119 -| 设置推送(不允许) | setPushDisable | Map集合,key表示推送类型,比如全体推送 | 成功 1105 失败 1205 |
120 -| | | 就传enable,夜间推送就传night,广告推 送 | |
121 -| | | 就传ad;value传""就好 | |
122 -
123 -### 接入事例
124 -#### 无需进行第二步以 显示公告 为例
125 - `
126 - boolean hasShowNotice = PoolSdkHelper.hasFunction("hasShowNotice");
127 - if(hasShowNotice){
128 - //显示公告入口
129 - }else{
130 - //不显示公告入口`
131 - }
132 - `
133 - 用户点击公告时
134 - `
135 - PoolSdkHelper.callFunc("showNotice",null);此结果的返回码如上表格
136 - `
137 -
138 -#### 需要进行第二步获取状态以 绑定账号 为例
139 - `
140 - String hasLinkedAccountView = PoolSdkHelper.callFunc("hasLinkedAccountView",null);
141 - if(hasLinkedAccountView==""){
142 - //不显示绑定入口
143 - }else{
144 - JSONObject jsonObject = new JSONObject(hasLinkedAccountView);
145 - String itemGoogle = jsonObject.optString("google");
146 - if(itemGoogle == null || itemGoogle=="false"){
147 - //不显示google的绑定入口
148 - }else{
149 - //显示google的绑定入口
150 - }
151 - }
152 - `
153 - 获取绑定状态,以便知道显示解绑还是绑定视图
154 - `
155 - Map<Object,Object> map = new HashMap<>();
156 - map.put("google","");//以谷歌为例
157 - String linkedAccountStatus = PoolSdkHelper.callFunc("getLinkedAccountStatus",map);
158 - `
159 - 用户点击按钮改变状态时
160 - `
161 - if("true" == linkedAccountStatus){//已经绑定了
162 - //此时为解绑
163 - Map<Object,Object> map = new HashMap<>();
164 - map.put("google","");//以谷歌为例
165 - PoolSdkHelper.callFunc("deleteLinkingAccount",map);//此结果的返回码如上表格
166 - }
167 - if("false" == linkedAccountStatus){//没有绑定
168 - //此时为去绑定
169 - Map<Object,Object> map = new HashMap<>();
170 - map.put("google","");//以谷歌为例
171 - PoolSdkHelper.callFunc("createLinkingAccount",map);//此结果的返回码如上表格
172 - }
173 - `
174 -