社交
社交 API 列表
SDK 接口名称 | 接口功能 | 参数/结构体/回调 |
---|---|---|
share | 分享 | platform, shareParam |
invite | 邀请 | platform, inviteJson |
getSocialInfo | 获取社交用户个人信息 | platform |
getFriendInfo | 获取社交用户好友信息 | platform |
1.分享
方法原型
fun share(
activity: Activity,
@NonNull platform: String,
param: ShareParam,
callback: ResponseCallback
)
接口说明
- 各分享平台,对分享方式、分享内容、分享类型等都有限制。
- 比如图片分享,部分平台允许通过其 SDK 带上文字描述、网页链接等;部分平台完全禁止,或只允许用户在拉起的分享界面主动编辑。
- 比如链接分享,部分平台会主动解析链接,让链接预展示;部分平台没有。
分享方式
- 单个分享,即直接调起指定平台进行分享。
- 多个分享,即使用 OmniSDK 提供的分享弹窗 UI 界面,经过用户二次选择后分享到指定平台。
图片分享
网络图片:
- 需要游戏先申请成功存储权限;
- 可下载访问的有效图片链接。
本地图片:
- 需要游戏先申请成功存储权限;
- 可访问的本地图片uri地址;
- 通常使用应用私有存储目录:activity.getExternalFilesDir(null).getPath(),如需要其他存储目录请按 FileProvider 官方说明配置和适配不同手机的权限申请(不同厂商会细化权限),否则 Android 高版本系统文件访问受限会导致直接崩溃。
- 本地图片地址拼接示例:imageUri = activity.getExternalFilesDir(null).getPath() + "/{local_image}"
截图:废弃。经测试,部分引擎或引擎版本,使用 Android 原生截图方法时,只能截到空白屏,建议直接使用引擎提供的截图方法,转成本地图片分享方式。
提示
- OmniSDK 不申请权限,有图片分享时需要游戏提前申请存储权限,否则无法分享。
- 分享 APP(比如 Facebook)需要申请存储权限、相册权限(部分品牌厂商),游戏测试时请提前确认权限是否申请。
- 部分社交平台需要在其后台申请参数,或对应权限。
请求参数
字段 | 说明 | 类型 |
---|---|---|
activity | 上下文 | |
platform | OmniSDK 支持的分享平台或指定应用包名; 部分可以通过 OmniConstant.platform* 调用 |
platform 分享平台标识
字段 | 依赖 | 平台 |
---|---|---|
system | 无 | 拉起手机系统分享界面;其他指定平台如无或异常,也会用于补位。 |
facebook 插件 | Facebook 社交平台 | |
vk | VK 插件 | VK 社交平台 |
line | Line 插件 | Line 社交平台 |
指定应用包名 | 无 | OmniSDK 会调用,该平台在系统分享界面里注册的分享方式声明,拉起平台分享界面。 |
接入示例代码
// 创建分享数据实体,注意分享类型 ShareType、图片类型 ShareImageType,注意参数正确
ShareParam shareParam = new ShareParam(
ShareType.IMAGE,
"title",
"description",
"link",
ShareImageType.LOCAL,
"shareUri");
// 调用分享接口
OmniSDK.getInstance().share(activity, platform, shareParam, new ResponseCallback() {
@Override
public void onFailure(@NonNull Pair<Integer, String> responseCode) {
// 游戏处理回调结果
}
@Override
public void onSuccess() {
// 游戏处理回调结果
}
});
版本历史
- 1.0 支持 facebook、system、指定包名
- 1.0.8 支持 vk
- 1.0.9 支持分享弹窗 UI
2.邀请
方法原型
fun invite(
activity: Activity,
@NonNull platform: String,
@NonNull json: String,
callback: ResultCallback
)
接口说明
- 仅部分平台支持
请求参数
字段 | 说明 | 类型 |
---|---|---|
activity | 上下文 | |
platform | 平台 | |
json | 邀请信息{"message":"invite-message"} | |
callback | 回调信息 |
platform 邀请平台标识
字段 | 依赖 | 平台 | 说明 |
---|---|---|---|
facebook 插件 | Facebook 社交平台 | 需要向平台申请权限 |
接入示例代码
OmniSDK.getInstance().invite(activity, platform, json, new ResultCallback() {
@Override
public void onFailure(@NonNull Pair<Integer, String> responseCode) {
// 游戏处理回调结果
}
@Override
public void onSuccess(@NonNull String resultJson) {
// 游戏处理回调结果
}
});
版本历史
- 1.0 支持 facebook
3.获取社交用户个人信息
方法原型
fun getSocialInfo(
activity: Activity,
@NonNull platform: String,
callback: ResultCallback
)
接口说明
- 用户社交信息,获取前需要使用对应账号类型登录,比如要获取 Facebook 用户信息,则需要用 Facebook 进行登录后才能获取,并向 Facebook 申请相关参数、对应权限。
- 仅部分平台支持
请求参数
字段 | 说明 | 类型 |
---|---|---|
activity | 上下文 | |
platform | 平台 | |
callback | 回调信息 |
platform 社交平台标识
字段 | 依赖 | 平台 | 说明 |
---|---|---|---|
facebook 插件 | Facebook 社交平台 | 需要向平台申请权限 | |
vk | vk 插件 | VK 社交平台 | 需要向平台申请权限 |
接入示例代码
OmniSDK.getInstance().getSocialInfo(demoActivity, platform, new ResultCallback() {
@Override
public void onSuccess(String resultJson) {
try {
// 解析玩家社交账号信息数据
SocialInfo socialAccountInfo = OmniUtils.fromJson(resultJson, SocialInfo.class);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onFailure(Pair<Integer, String> responseCode) {
// 获取失败
}
});
返回值
{"id":"","imageUrl":"","width":0,"height":0,"gender":"","nickName":""}
版本历史
- 1.0 支持 facebook
- 1.0.8 支持 vk
4.获取社交用户好友信息
方法原型
fun getFriendInfo(
activity: Activity,
@NonNull platform: String,
callback: ResultCallback
)
接口说明
- 用户好友信息,获取前需要使用对应账号类型登录,比如要获取 Facebook 好友信息,则需要用 Facebook 进行登录后才能获取,并向 Facebook 申请相关参数、对应权限。
- 仅部分平台支持
请求参数
字段 | 说明 | 类型 |
---|---|---|
activity | 上下文 | |
platform | 平台 | |
callback | 回调信息 |
platform 社交平台标识
字段 | 依赖 | 平台 | 说明 |
---|---|---|---|
facebook 插件 | Facebook 社交平台 | 需要向平台申请权限 | |
vk | vk 插件 | VK 社交平台 | 需要向平台申请权限 |
接入示例代码
OmniSDK.getInstance().getFriendInfo(demoActivity, platform, new ResultCallback() {
@Override
public void onSuccess(String resultJson) {
// 解析玩家游戏好友的社交账号信息数据
List<SocialInfo> friendsInList = OmniUtils.<SocialInfo>fromJson(resultJson);
for (SocialInfo socialAccountInfo : friendsInList) {
}
}
@Override
public void onFailure(Pair<Integer, String> responseCode) {
// 获取失败
}
});
返回值
{"id":"","imageUrl":"","width":0,"height":0,"gender":"","nickName":""}
版本历史
- 1.0 支持 facebook
- 1.0.8 支持 vk
社交平台的功能与权限申请
社交平台 | 功能 | 参数 | 权限 |
---|---|---|---|
System | 手机系统的分享功能 | 不需要 | 不需要 |
分享 | 向社交平台的后台申请 | ||
用户社交信息 | 向社交平台的后台申请 | ||
好友社交信息 | 向社交平台的后台申请 | ||
邀请好友 | 向社交平台的后台申请 |