游戏与 DApp 分享到群
游戏调用接口,用户选择群聊,群里收到可点击的卡片。
适用范围
Android/iOS 内置 DApp 与游戏 WebView,426、427 基座须安装 2026-10-24 发布的群分享 OTA 并重启。请先检测接口是否存在;外部浏览器、旧客户端和当前桌面宿主不提供此接口。
快速接入
if (typeof window.gpc?.shareToGroup !== 'function') {
throw new Error('请在更新后的 GPC Wallet 中打开');
}
try {
const result = await window.gpc.shareToGroup({
title: '青岚剑境',
text: '来一起闯关!',
url: 'https://game.example/play?invite=your-invite-code',
imageUrl: 'https://game.example/logo.png',
});
// 选群并发送成功:{ shared: true, groupId: 'group:…' }
console.log(result.groupId);
} catch (error) {
if (error.code === 4001) return; // 用户取消或页面离开
console.error(error.message);
}也可通过标准 Provider 请求调用:
const result = await window.ethereum.request({
method: 'gpc_shareToGroup',
params: [{ title: '游戏名称', text: '游戏简介',
url: 'https://game.example/',
imageUrl: 'https://game.example/logo.png' }],
});请求参数
| 字段 | 要求 |
|---|---|
title | 必填字符串,卡片名称,最多 120 字符。 |
text | 可选字符串,卡片简介,最多 1000 字符。 |
url | 必填 HTTP/HTTPS 链接,规范化后最多 2048 字符,不含用户名或密码。 |
imageUrl | 可选 Logo 链接,与 url 使用相同规则;不传时显示默认图标。 |
只接受单个参数对象。业务方不能指定群 ID 静默发送,也不能读取完整群列表。传入的 origin、groupId、gameOrientation 不能覆盖宿主判断。
卡片与交互
- Wallet 展示 Logo、名称、简介和来源域名,以及当前身份可用的群列表。
- 用户选择群后,Wallet 通过既有端到端加密聊天发送卡片;发送失败保留窗口,允许重试。
- 群成员点击卡片打开游戏或 DApp;卡片支持转发,会话摘要显示游戏或应用名称。
游戏的横竖屏配置由宿主附加,接收方按配置打开;普通 DApp 分享打开 DApp 页面。点击卡片不会自动发起登录、签名或交易。
来源域名用于展示,不是经过服务器认证的发布者证明。历史客户端可能显示原始卡片文本。
返回结果与取消
{ shared: true, groupId: 'group:…' }只有发送流程成功才返回结果,不代表群成员已阅读,也不能将其作为服务端奖励凭据。取消通过错误码 4001 返回。
分享等待用户交互,不使用普通 RPC 读请求的超时。切换页面、刷新和退出会取消等待中的请求;消息已开始发送后,离开页面不能撤回已提交的消息。发送期间会阻止重复点击和主动关闭。
错误码
| 错误码 | 含义 |
|---|---|
4001 | 用户取消、页面离开或刷新。 |
-32002 | 已有分享请求等待处理。 |
-32602 | 参数无效、超长,或链接协议不支持。 |
4200 | 当前宿主不支持分享到群。 |
4100 | 当前页面不在前台或来源无效。 |