1 支付有关
1.1 查询支付服务是否可用
通过以下接口可以获取支付服务是否可用,返回boolean类型结果,true为可用,false为不可用,只要有一个支付渠道可用即为true。
1 2 |
WAPayProxy.isPayServiceAvailable(Context context) |
参数说明:
参数名 | 类型 | 必填 | 说明 | 备注 |
---|---|---|---|---|
context | Context | Y | 上下文 |
1.2 查询商品本地价格
通过查询商品信息,可以获取库存商品的本地价格,查询商品本地价格调用接口
1 2 |
WAPayProxy.queryChannelProduct(String channel,WACallback<Map<String,WAChannelProduct>> callback) |
注意:这个接口需要在查询库存商品(WAPayProxy.queryInventory)成功回调后使用。
参数说明:
参数名 | 类型 | 必填 | 说明 | 备注 |
---|---|---|---|---|
channel | String | Y | WAConstants类中定义的渠道类型,比如谷歌渠道传WAConstants.CHANNEL_GOOGLE | |
callback | WACallback<Map<String,WAChannelProduct>> | Y | 回调方法,结果返回,如果未获取到谷歌商品本地化价格信息,Map返回空集合 | Map中的键是库存商品id(sku) |
WAChannelProduct实体类说明:
Get方法名 | 返回值类型 | 不为空 | 说明 | 备注 |
---|---|---|---|---|
getChannel() | String | Y | 渠道类型 | |
getSku() | String | Y | 库存商品id | |
getPriceCurrencyCode() | String | Y | 本地货币类型 | 比如美元返回USD |
getPrice() | String | Y | 本地货币类型换算的价格(格式化) | 比如美元返回US$1.17 |
getPriceAmount() | Double | Y | 本地货币价格(数值类型) |
2 获取隐私政策有关
如果CP对接的登录方式是接口登录方式,则可以使用以下几个接口来实现隐私政策流程,具体流程可参考下图。
2.1.获取隐私政策url
WINGSDK有自己的隐私政策,调用以下接口获取到隐私政策url(隐私政策内容为html页面):
1 2 |
WACoreProxy.getPrivacyUrl(Context context); |
参数说明:
参数名 | 类型 | 必填 | 说明 | 备注 |
---|---|---|---|---|
context | context | Y | 上下文 |
返回值说明:
类型 | 必填 | 说明 | 备注 |
---|---|---|---|
String | Y | 隐私政策html页面对应的url |
2.2.获取隐私政策更新时间
隐私政策更新需要重新显示时可以调用以下接口获取最新隐私政策更新时间,和上一次保存的时间戳作对比,从而确定是否需要展示:
1 2 |
WACoreProxy.getPrivacyUpdateTime(Context context); |
参数说明:
参数名 | 类型 | 必填 | 说明 | 备注 |
---|---|---|---|---|
context | context | Y | 上下文 |
返回值说明:
类型 | 必填 | 说明 | 备注 |
---|---|---|---|
String | Y | 最新隐私政策更新的时间戳 |
2.3.显示隐私政策详情UI
当需要显示隐私政策详情时,可以调用以下接口显示出隐私政策详情界面:
1 2 |
WACoreProxy.showPrivacyUI(Context context, WACallback<WAResult> callback); |
参数说明:
参数名 | 类型 | 必填 | 说明 | 备注 |
---|---|---|---|---|
context | context | Y | 上下文 | |
callback | WACallback |
N | 回调方法,窗口关闭时可以在onCancel中得知结果 |
调用示例,当窗口关闭时会回调onCancel接口。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
WACoreProxy.showPrivacyUI(this, new WACallback<WAResult>() { @Override public void onSuccess(int code, String message, WAResult result) {} @Override public void onCancel() { showLongToast("关闭窗口"); } @Override public void onError(int code, String message, WAResult result, Throwable throwable) { } }); |
3 公共参数设置
WINGSDK包括serverId等公共参数,这些参数主要用于数据跟踪和统计。
公共参数必须严格按照文档进行设置,在后续的接口中会使用到这些公共的参数,没有按照要求配置会导致部分接口调用失败。
3.1 设置服务器ID
当用户的服务器ID发生改变时,需要调用设置服务器ID接口设置新的服务器ID,例如每次进入服务器
1 2 |
WACoreProxy.setServerId(String serverId) |
注意:设置服务器id的操作在每次选服后都需要进行,必须在调用其他接口前设置。
3.2 设置gameUserId
当gameUserId发生改变时,需要调用设置gameUserId接口设置新的gameUserId,例如成功登录账号后、切换账号成功后
1 2 |
WACoreProxy.setGameUserId(String gameUserId) |
注意:必须在调用其他接口前设置。
3.3 设置用户等级Level
当用户角色等级发生改变时,需要调用设置等级接口设置新的等级,例如开始进入游戏、等级提升等。
1 2 |
WACoreProxy.setLevel(int level) |
注意:第一次进服获取玩家等级或玩家等级变更后,需要及时调用这个接口设置玩家等级,必须在调用其他接口前设置。
3.4 设置游戏玩家昵称
设置游戏玩家的昵称,调用接口:
1 2 |
WACoreProxy.setNickname(String nickname); |
注意:
1.当玩家登录、登出游戏,或修改昵称时,需要及时调用这个接口设置玩家昵称。
2.调用该接口设置昵称后,玩家进行购买时会自动记录昵称到订单信息中。
4 推送消息设置
4.1 获取推送消息的数据
收到推送消息后,WINGSDK将在设备通知栏显示通知,用户点击通知后打开应用程序,会将消息的数据传递给应用(例如自定义的数据),如果在应用中需要接收数据,需要实现一个BroadcastReceiver子类,并且在AndroidManifest.xml配置。当BroadcastReceiver接收到一个Action值为com.wa.sdk.push.intent.NOTIFICATION_OPENED的广播时,即收到了打开的推送消息包含的数据,数据为存放在Intent的Extras中。
说明:推送消息数据的处理非必要,如果推送消息中没有数据需要处理,可以不用配置。
数据接收BroadcastReceiver实现示例
实现一个类继承BroadcastReceiver,在onReceive方法中处理数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
public class PushReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if(null == intent || !WAPushConstants.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) { return; } Bundle bundle = intent.getExtras(); if(null == bundle) { LogUtil.e("PushReceiver", "通知打开,没有数据"); } else { LogUtil.e("PushReceiver", "通知打开,包含的数据"); for(String key : bundle.keySet()) { LogUtil.e("PushReceiver", key + " -- " + bundle.get(key)); } } } } |
在AndroidManifest.xml中配置Receiver,注意action值必须一致。
1 2 3 4 5 6 7 |
<receiver android:name=".receiver.PushReceiver" android:exported="false"> <intent-filter> <action android:name="com.wa.sdk.push.intent.NOTIFICATION_OPENED" /> </intent-filter> </receiver> |
4.2 自定义通知图标及背景颜色
该项为可选配置,但是为了更好的通知显示效果,建议配置。
若不使用自定义图标,通知会默认以白色渲染的应用图标作为通知图标来显示,效果参考下方图示。
a、自定义通知图标
在res/drawable文件夹下添加通知图标的图片文件。
通知图标要求:
1.文件名ic_wa_push_notification.png
2.图片格式png
3.图标尺寸参考应用桌面图标。
4.尽量带透明效果,体现图标易于辨认的核心形状。不要有圆形,圆角,方形等不透明背景,保证轮廓辨识度,因为Android系统默认会把该图标统一渲染颜色。若是核心形状辨识度不足,会影响视觉体验。下方有相应效果示例。
b、自定义通知图标背景颜色
1.在AndroidManifest.xml清单中添加下面内容
1 2 3 4 |
<meta-data android:name="com.google.firebase.messaging.default_notification_color" android:resource="@color/color_wa_push_notification" /> |
2.在res/values/colors.xml中添加 color_wa_push_notification 颜色声明,其中色值修改为项目要求的颜色
1 2 |
<color name="color_wa_push_notification">#3F51B5</color> |
效果展现
Demo应用图标原图:
通知显示效果:
自定义通知图标增加透明效果,及设置通知图标背景颜色为红色:
自定义后通知显示效果:
5 账户管理
5.1 绑定第三方平台账户
绑定第三方平台账户,不但可以使用第三方平台账户登录,而且可以防止账户信息丢失,调用以下接口绑定平台账户
1 2 |
WAUserProxy.bindingAccount(Activity activity, String platform, String extInfo,WABindCallback callback) |
参数说明
参数名 | 类型 | 必填 | 说明 | 备注 |
---|---|---|---|---|
activity | Activity | Y | 调用接口的Activity | |
platform | String | Y | 绑定第三方平台账号的平台类型 | 取值参考 平台取值 |
extInfo | String | N | 额外信息 | 预留字段 |
callback | WABindCallback | N | 回调,用来返回绑定结果 |
5.2 查询已绑定的第三方平台账户
查询当前的账户已经绑定的第三方平台账户列表,调用接口
1 2 |
WAUserProxy.queryBoundAccount(WACallback<WAAccountResult> callback) |
WAAccountResult字段说明
字段名 | 类型 | 说明 | 备注 |
---|---|---|---|
code | int | 结果码 | 状态码说明 |
message | String | 结果消息 | |
accounts | List<WAAccount> | ||
platform | String | 绑定的平台类型 | 取值参考 平台取值 |
platformUserId | String | 平台用户id |
WAAccount字段说明
字段名 | 类型 | 说明 | 备注 |
---|---|---|---|
platform | String | 绑定的平台类型 | 取值参考 平台取值 |
platformUserId | String | 平台用户id |
5.3 解绑第三方平台账户
解绑已经绑定的第三方平台账户,调用接口
1 2 |
WAUserProxy.unBindAccount(String platform, String platformUserId, WACallback<WAResult> callback) |
注意:有以下情况之一者,不可解绑
1.解绑的账户为SDK平台的;
2.用户没有绑定第三方平台账户的;
3.用户只绑定一个第三方平台账户,且用户没有与当前设备绑定的
5.4 切换账户
切换账户可以一键切换登录账户,调用接口
1 2 |
WAUserProxy.switchAccount(Activity activity, String platform, final WACallback<WALoginResult> callback) |
参数说明:
参数名 | 类型 | 必填 | 说明 | 备注 |
---|---|---|---|---|
activity | Activity | Y | ||
platform | String | Y | 需要切换的账号类型 | 取值参考 平台取值 |
callback | WACallback<WALoginResult> | N | 回调 | 用来返回结果 |
5.5 新建账户
新建账户可以新建一个全新的玩家账户。
1 2 |
WAUserProxy.createNewAccount(WACallback<WALoginResult> callback) |
注意:新建账户后,新的账户会跟当前设备绑定,如果之前的账户没有绑定第三方平台账户,数据将会丢失。
5.6 获取账户信息
获取账户信息接口可以获取指定平台的账户信息,调用接口
1 2 |
WAUserProxy.getAccountInfo(String platform, WACallback<WAUser> callback) |
参数说明:
参数名 | 类型 | 必填 | 说明 | 备注 |
---|---|---|---|---|
platform | String | Y | 平台名称 | 取值参考 平台取值 |
callback | WACallback<WAUser> | N | 回调 | 结果中包含平台用户的id,名称,头像等信息 |
6 Aihelp客服有关
6.1.打开游戏评价客服入口
1 2 3 |
WACscProxy.openGameReviewAiHelp(); |
说明:该接口受WING后台中”游戏评价开关”控制。如果后台未开启开关,此接口不生效。
6.2.设置客服系统语言
1 2 |
WACscProxy.setSDKLanguage(String language); |
示例代码:
1 2 3 |
String language = "zh_CN"; WACscProxy.setSDKLanguage(language); |
语言支持列表图:
7 google 应用内评分
Google 应用内评分参考:
https://developer.android.com/guide/playcore/in-app-review
通过此接口,可以在应用内调起应用内评分
1 2 |
WAUserProxy.openReview(Activity activity,WACallback<Boolean> callback) |
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
WAUserProxy.openReview( this, new WACallback<Boolean>() { @Override public void onSuccess(int code, String message, Boolean result) { showShortToast("api调用流程已经完成,无法获取用户是否评分,是否弹出评分框,请继续下一步操作"+message); } @Override public void onCancel() { } @Override public void onError(int code, String message, Boolean result, Throwable throwable) { } } ); |
备注:
评分回调onSuccess后,并不能知道用户是否已经评分,是否弹出评分界面,这是调用google 评分的api流程完成,不能作为用户已经完成评分的依据
谷歌商店评分页面的显示逻辑是完全由谷歌内部控制的,会根据用户是否弹过,评分接口调用频率等等一些逻辑去控制显示或者不显示,这个规则也不对外公开。
如果希望百分百观察到评分页面弹出及操作,需要按照谷歌文档进行操作,建议使用内部测试轨道进行测试。
Google测试说明:
https://developer.android.com/guide/playcore/in-app-review/test?hl=zh-cn
如果发现调不起评分界面,请查看问题排查:
https://developer.android.com/guide/playcore/in-app-review/test?hl=zh-cn#troubleshooting
8 帐号删除有关
8.1 接口版本
接口版本为,cp需要自己做UI,然后调用sdk接口进行删除操作。
8.1.1 请求删除账号接口
注意:需要在sdk登录成功的情况下才可调用。
1 2 |
<br />WAUserProxy.requestDeleteAccount(WACallback<WADeleteResult> callback) |
参数说明:
参数名 | 类型 | 必填 | 说明 | 备注 |
---|---|---|---|---|
callback | WACallback< WADeleteResult> | N | 回调方法,结果返回 | WADeleteResult实体类参考下方说明 |
WADeleteResult实体类说明:
get方法名 | 返回值类型 | 不为空 | 说明 | 备注 |
---|---|---|---|---|
getApplyDate | String | Y | 账号注销申请时间 | 示例:2023-08-29 07:49 |
getDeleteDate | String | Y | 账号注销时间,达到该时间账号即被删除 | 示例:2023-08-29 07:49 |
示例代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
WAUserProxy.requestDeleteAccount(new WACallback<WADeleteResult>() { @Override public void onSuccess(int code, String message, WADeleteResult result) { Log.d("test","申请账号注销成功\nCP需要退出sdk,然后再退出游戏到登录页\n申请时间:" + result.getApplyDate() + "\n注销时间:" + result.getDeleteDate()); // 退出sdk内部的登录 WAUserProxy.logout(); // 退出游戏到登录页面 ... } @Override public void onCancel() { // 取消 } @Override public void onError(int code, String message, WADeleteResult result, Throwable throwable) { // 失败 showShortToast("error:" + code + " , " + message); } }); |
8.1.2 取消删除账号接口
1 2 |
WAUserProxy.cancelRequestDeleteAccount(String userId, WACallback<WAResult> callback) |
参数说明:
参数名 | 类型 | 必填 | 说明 | 备注 |
---|---|---|---|---|
userId | String | Y | 用户ID | 登录失败时,若用户在申请账号注销中则会返回userId |
callback | WACallback< WAResult> | N | 回调方法,结果返回 |
示例代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
1.登录失败,返回账号注销相关信息 WAUserProxy.loginUI(MainActivity.this, true, new WACallback<WALoginResult>() { @Override public void onSuccess(int code, String message, WALoginResult result) { // 登录成功,进入游戏 } @Override public void onCancel() { // 取消 } @Override public void onError(int code, String message, WALoginResult result, Throwable throwable) { if (code == WACallback.CODE_ACCOUNT_IN_DELETION_BUFFER_DAYS) { // 正在删除中的账号,会返回删除状态,删除时间,及UserID String message1 = "code:" + code + "\nmessage:" + message + "\napplyDeleteStatus:" + result.getApplyDeleteStatus() + "\nuserId:" + result.getUserId() + "\ndeleteDate:" + result.getDeleteDate(); Log.d("test",message1); // 提示用户正在删除中 // 用户若需要继续登录,则可以调用取消账号注销申请 // 取消删除成功后,用户可以继续登录,并登录成功 } } }); 2.用户若需要继续登录,则可以调用取消账号注销申请 WAUserProxy.cancelRequestDeleteAccount(loginAccount.getUserId(), new WACallback<WAResult>() { @Override public void onSuccess(int code, String message, WAResult result) { showLongToast("取消账号注销成功"); } @Override public void onCancel() { showShortToast("取消"); } @Override public void onError(int code, String message, WAResult result, Throwable throwable) { showShortToast("错误:" + code + " , " + message); } } |
9 UMP同意弹窗相关
9.1 同意弹窗说明
SDK在初始化的时候会在该Activity页面进行UMP同意弹窗初始化,并展示给需要的用户(欧盟地区)进行同意授权,授权完成后AdMob功能才会进行初始化及加载广告。如果是非欧盟地区用户,则会直接返回授权成功,并进行后续逻辑。
以上为SDK内部逻辑,研发无需处理。除此之外,研发需要在游戏内部放置一个按钮,可供用户打开UMP同意设置并修改同意状态,需要用到下面“检查设置”和”展示设置“两个方法。
UMP同意弹窗效果如下:
9.2 开关配置
UMP功能默认关闭,如果需要开启UMP功能,在AndroidManifest.xml中加入下面配置:
1 2 3 4 |
<meta-data android:name="com.wa.sdk.UMP_ENABLE" android:value="true"/> |
9.3 检查设置
1 2 |
WAAdMobPublicProxy.checkUmpOptions() |
返回值说明:
类型 | 必填 | 说明 | 备注 |
---|---|---|---|
boolean | Y | true为需要展示,此时可以显示UMP配置按钮入口;false为不需要,可以隐藏UMP配置按钮入口。 | 如果设备在非欧盟地区一般返回false |
9.4 展示设置
展示UMP同意设置
1 2 |
WAAdMobPublicProxy.showUmpOptions(Activity activity, WACallback callback) |
参数说明:
参数名 | 类型 | 必填 | 说明 | 备注 |
---|---|---|---|---|
activity | Activity | Y | 当前Activity页面 | |
callback | WACallback | N | 显示成功后,用户操作同意或不同意才会回调onSuccess;如果显示失败,则直接回调onError; |
9.5 添加UMP同意监听
注意:该接口功能用于配合启动页展示开屏广告,如非必要,无需接入使用。
添加SDK初始化时的UMP同意弹窗授权状态监听,主要在SDK初始化方法之前调用。
1 2 |
WAAdMobPublicProxy.addUmpInitCallback(WACallback callback) |
参数说明:
参数名 | 类型 | 必填 | 说明 | 备注 |
---|---|---|---|---|
callback | WACallback | Y | 用户已经完成授权回调onSuccess; |
示例代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
// 在SDK初始化之前添加监听 WAAdMobPublicProxy.addUmpInitCallback(new WACallback() { @Override public void onSuccess(int code, String message, Object result) { // 用户已经完成授权,可以继续游戏 } @Override public void onCancel() { // 忽略,无需关注 } @Override public void onError(int code, String message, Object result, Throwable throwable) { // 忽略,无需关注 } }); // SDK初始化 WACoreProxy.initialize(this, new WACallback<Void>() { @Override public void onSuccess(int code, String message, Void result) { // 隐藏loading HideLoading(); // 初始化成功,可以调用SDK其他接口,以及进入游戏 doSomeThing(); } @Override public void onCancel() { // 忽略,无需处理 } @Override public void onError(int code, String message, Void result, Throwable throwable) { // 隐藏loading HideLoading(); // 初始化失败,提示退出应用重新进入,或者提供界面操作让用户重试 showTipsExitOrRetry(); } } |
10 Logcat工具
SDK提供了调试信息显示的Logcat工具,使用这个工具测试人员不需要IDE环境就可以查看调试信息,工具可以看到应用的调试Log信息(不包含系统打印)。使用前必须确保手机的安全软件没有拦截该程序的悬浮窗口权限,使用调用以下接口:
10.1 显示Logcat悬浮按钮
1 2 |
WACommonProxy.enableLogcat(Activity activity) |
说明:如果已经开启了调试模式,不需要调用该接口就可以显示Logcat入口悬浮窗。
10.2 隐藏Logcat悬浮按钮
1 2 |
WACommonProxy. disableLogcat(Activity activity) |
10.3 向Logcat增加一条日志
通过以下接口,开发者可以向Logcat工具中增加一条开发日志,日志会在Logcat工具的Log标签中显示。
1 2 |
WACommonProxy.log(String tag, String msg) |
11 华为HMS
11.1.华为HMS基本配置
1)在项目级别根build.gradle中配置华为仓库地址和依赖插件,如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
buildscript { repositories { maven {url 'https://developer.huawei.com/repo/'} } dependencies { classpath 'com.huawei.agconnect:agcp:1.6.1.300' classpath 'com.huawei.agconnect:agconnect-core:1.6.1.300' } } allprojects { repositories { maven {url 'https://developer.huawei.com/repo/'} } } |
2)在应用级别的根目录中添加agconnect-services.json文件,如下图所示:
agconnect-services.json的生成请参考《WINGSDK第三方后台配置.docx》中添加华为HMS后台配置章节。
3)在应用级别的build.gradle中,添加华为插件,如下:
apply plugin: ‘com.huawei.agconnect’
如果使用性能监测,则需要添加APMS开关代码,如下:
agcp{
enableAPMS true
}
4)在应用级别的build.gradle中,添加华为多语种支持,配置如下:
android {
defaultConfig {
//华为多语种设置,由CP配置
resConfigs “en”, “zh-rCN”, “pt”
}
}
支持语言参考:
https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides-V5/support-language-0000001050040564-V5
5)在AndroidManifest.xml中添加配置:
1 2 3 4 5 6 |
<!-- 开启/关闭 HUAWEI_HMS数据收集功能,默认关闭,如需使用数据收集功能,需配置开启状态 --> <meta-data android:name="com.wa.sdk.track.ENABLE_HUAWEIHMS" android:value="true" /> |
11.2.华为HMS混淆配置
1)proguard-rules.pro文件配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
-ignorewarnings -keepattributes *Annotation* -keepattributes Exceptions -keepattributes InnerClasses -keepattributes Signature -keepattributes SourceFile,LineNumberTable -keep class com.huawei.updatesdk.**{*;} -keep class com.huawei.hms.**{*;} -keep class com.hianalytics.android.**{*;} -keep class com.huawei.agconnect.**{*;} -dontwarn com.huawei.agconnect.** -keep interface com.huawei.hms.analytics.type.HAEventType{*;} -keep interface com.huawei.hms.analytics.type.HAParamType{*;} -keepattributes Exceptions, Signature, InnerClasses, LineNumberTable -keep class com.huawei.hianalytics.**{*;} |
2)AndResGuard配置方式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
"R.string.hms*", "R.string.connect_server_fail_prompt_toast", "R.string.getting_message_fail_prompt_toast", "R.string.no_available_network_prompt_toast", "R.string.third_app_*", "R.string.upsdk_*", "R.layout.hms*", "R.layout.upsdk_*", "R.drawable.upsdk*", "R.color.upsdk*", "R.dimen.upsdk*", "R.style.upsdk*", "R.string.agc*" |
说明:如果应用无相关混淆可不配置。
11.3.华为HMS权限配置
1 2 3 4 5 6 7 8 9 10 11 12 |
<!--HMS-SDK need network permission while check if upgrade is neccessary--> <uses-permission android:name="android.permission.INTERNET" /> <!--chek network permissions--> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!--check wifi state--> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- running after lock screen --> <uses-permission android:name="android.permission.WAKE_LOCK" /> |
说明:SDK已经集成权限,如果危险权限需要CP动态申请权限。
12.leidian雷电模块配置
12.1.maven仓库配置
在项目目录下的build.gradle文件添加以下配置,否则无法正常拉取雷电依赖库:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
apply plugin: 'maven' allprojects { repositories { jcenter() maven { allowInsecureProtocol= true url "http://repo.wingsdk.cn:8081/repository/winga-group/" } //以下是雷电联运包的maven仓库地址+访问凭证 maven { url 'https://maven.aliyun.com/repository/public' } maven { credentials { username '6445f183daafbed659eb2c18' password 'oWuvewt2tR1A' } url 'https://packages.aliyun.com/5f05a0346207a1a8b17f4aaf/maven/cz-public-repo' } } } |
12.2.清单配置
AndroidManifest.xml.xml中application标签下添加以下配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<meta-data android:name="com.ld.APP_ID" android:value="@string/ld_app_id" /> <meta-data android:name="com.ld.APP_KEY" android:value="@string/ld_app_key" /> <meta-data android:name="com.ld.CHANNEL_ID" android:value="@string/ld_channel_id" /> <meta-data android:name="com.ld.SUN_CHANNEL_ID" android:value="@string/ld_sub_channel_id" /> <meta-data android:name="CHANNEL" android:value="Leidian" /> |
ld_app_id、ld_app_key、ld_channel_id、ld_sub_channel_id的具体值从运营处获取,,CHANNEL值为固定内容“Leidian”。
12.3.生命周期
在游戏页中添加生命周期处理方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<br />@Override protected void onResume() { super.onResume(); WACommonProxy.onResume(this); // 接入雷电渠道才需要 } @Override protected void onPause() { super.onPause(); WACommonProxy.onPause(this); // 接入雷电渠道才需要 } @Override protected void onDestroy() { super.onDestroy(); WACommonProxy.onDestroy(this); // 接入雷电渠道才需要 } |
13.nowgg模块配置
13.1 nowgg基本配置
AndroidManifest.xml.xml中application标签下添加以下配置:
1 2 3 4 5 6 7 8 |
<meta-data android:name="com.wa.sdk.nowgg.CLIENT_ID" android:value="{nowgg应用的客户端ID" /> <meta-data android:name="com.wa.sdk.nowgg.PAYMENT_ID" android:value="{nowgg应用的支付ID,例如:1234}" /> <meta-data android:name="CHANNEL" android:value="Nowgg" /> |
CLIENT_ID 和 PAYMENT_ID 的具体值从运营处获取。CHANNEL值为固定内容“Nowgg”。
PaymentId 付款编号 获取参考:付款编号获取
ClientId 登录凭证 获取参考:登录凭证获取
13.2 最低API版本调整到24
minSdkVersion 24
13.3 登录按钮接入
进行Nowgg登录的按钮,其样式必须符合Nowgg平台要求,SDK已经封装好该按钮,可以直接在项目中的xml布局引入使用
1 2 3 4 5 |
<com.wa.sdk.nowgg.widget.WANowggButton android:id="@+id/btn_nowgg_login" android:layout_width="200dp" android:layout_height="wrap_content"/> |
按钮效果:
13.4 登录接口接入
使用登录接口接入,具体接口说明参考《使用接口登录》章节
注意事项:
1.应Nowgg平台要求,登录必须由用户点击才能发起,如果有存在自动调用登录逻辑,请务必移除。
2.因为nowgg登录需要用户授权权限,所以建议在授权成功后,尝试再次调用登录,具体参考以下示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
private void loginNowgg(){ // 执行登录 WAUserProxy.login(this, WAConstants.CHANNEL_NOWGG, new WACallback<WALoginResult>() { @Override public void onSuccess(int code, String message, WALoginResult result) { // 登录成功,进入游戏 } @Override public void onCancel() { } @Override public void onError(int code, String message, WALoginResult result, Throwable throwable) { // 登录失败 } },null); } // 在用户点击登录,或主动调用登录时,执行登录 loginNowgg(); // 授权处理 public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (requestCode == 1005 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { loginNowgg(); // nowgg 授权成功后,再次调用登录 } } |