Skip to main content

Mixin 交互

用于与原生客户端进行交互的 api。

一、用户相关#

1. 弹框打开好友的介绍页#

const user_id = `uuid`;Mixin.openUserModal(user_id);

Mixin 环境点击这里测试

2. 打开某个聊天的会话页面#

const conversation_id = `uuid`;const user_id = `uuid`;Mixin.openConversation(conversation_id, user_id);
提示
  1. 如果是群组的话,可以不用传 user_id
  2. 非群组用户,当 conversation 还未创建时,会使用 user_id 和点击链接用户的 user_id,创建一个 conversation

3. 打开某个机器人的首页#

const app_id = 'uuid';Mixin.openAppHomePage(app_id, { foo: 'bar' });

Mixin 环境点击这里测试

提示
  1. 第一个参数 app_id 是机器人的 client_id 或者可以理解为 机器人的 user_id
  2. 第二个参数是 打开机器人首页时,可以在 url 上传的参数。对应机器人可以通过 url 获取到这个 {foo:"bar"}

4. 修改当前页面的主题色(手机顶部状态栏的颜色)#

Mixin.changeTheme('#ff0000');

5. 打开某个用户/机器人的转账页面#

const user_id = 'uuid';Mixin.openTransferPage(user_id);

6. 唤起原生的语音播放器#

mixin.audiosPlayList(['https://xxx.mp3', 'https://xxx.mp3', 'https://xxx.mp3']);
提醒
  1. 支持多个 mp3 文件的播放,顺序播放。
  2. 需要 Mixin 版本大于 0.30.0, Mixin 版本判断请参见 Mixin 版本判断

7. 关闭页面#

Mixin.close();
提醒

需要 Mixin 版本大于 0.33.0, Mixin 版本判断请参见 Mixin 版本判断

二、分享相关#

直接会调起选择会话的界面,用户点击会话之后就完成了消息转发。

1. 分享一段文字#

Mixin.shareTextToFriend('要分享的文字');

2. 分享一个支持 md 的文章#

const markdownPost = '# hahaha';Mixin.sharePostToFriend(markdownPost);

3. 分享一张图片#

const imageURL = `https://developers.mixin.one/images/logo.svg`;Mixin.shareImageToFriend(imageURL);

4. 分享一个联系人#

const user_id = `uuid`;Mixin.shareContactToFriend(user_id);

5. 分享一个应用卡片#

const appCard = {  app_id: 'uuid',  title: 'Mixin官网',  description: '隐私、安全、快速、牛逼。',  icon_url: 'https://developers.mixin.one/images/logo.svg',  action: 'https://mixin.one',};Mixin.shareAppCardToFriend(appCard);

参数介绍

参数类型介绍
app_idUUID String打开机器人的 client_id,用户打开链接之后,通过右上角三个点,可以直接打开机器人的介绍页弹框。
titleString标题
descriptionString描述信息
icon_urlString图标
actionString打开的链接

6. 分享一个直播/视频卡片#

const liveCard = {  url: 'xxxx.m3u8',  width: 300,  height: 500,  thumb_url: '',};Mixin.shareLiveToFriend(liveCard);
参数类型介绍
urlUUID Stringm3u8 的地址或者是 mp4 的地址
widthNumber卡片的宽度
heightNumber卡片的高度
thumb_urlString封面的图片地址,可以为空

三、支付相关#

1. 唤起支付弹框#

调用之后需要用户自行输入 6 位 PIN 码后才能完成支付。

const params = {  asset: 'c94ac88f-4671-3976-b60a-09064f1811e8',  amount: '0.0001',  memo: '支付测试',  recipient: 'e8e8cd79-cd40-4796-8c54-3a13cfe50115',  trace: 'uuid',};Mixin.pay(params); // 无返回值
参数类型介绍
assetUUID String资产的 asset_id
amountString卡片的宽度
memoString可选,卡片的高度
recipientUUID String封面的图片地址,可以为空
traceUUID String封面的图片地址,可以为空

2. 轮询用户是否支付#

参数可以直接复用上一步的参数。

Mixin.getPayment(params).then(console.log);

返回值

{  "recipient": {...},// 收款人的 user 信息  "asset": {...}, // 支付的资产信息  "amount": "0.01", // 支付的金额  "status": "pending" // 支付的状态,pending 为未支付,paid 为已支付}

3. 打开某笔交易详情页面#

Mixin.openSnapshotPage({  trace_id: '95be8359-ed82-479c-bcb8-46ba16e0280d',  // snapshot_id: '', // 二选一。两个都传的话,优先使用 trace_id});
提示
  1. 参数为 trace_id 或者 snapshot_id ,二选一。两个都传的话,优先使用 trace_id
  2. 只能本人查看于自己相关的交易详情,不能查看别人的。

4. 一键添加提现地址#

调用之后需要用户自行输入 6 位 PIN 码后才能完成添加。

const params = {  asset: '',  label: '',  destination: '',  tag: '',};Mixin.addAddress(params);
参数类型介绍
assetUUID String资产的 asset_id
labelString给这个地址的备注信息
destinationString提现的地址
tagString可选,但某些需要 memo 的链就必填了。

5. 一键删除提现地址#

调用之后需要用户自行输入 6 位 PIN 码后才能完成删除。

const params = {  asset: '',  address: '',};Mixin.deleteAddress(params);

参数解释见上一步。

6. 提现#

调用之后需要用户自行输入 6 位 PIN 码后才能完成提现。

const params = {  asset: '',  address: '',  amount: '',  memo: '',  trace: '',};Mixin.deleteAddress(params);
参数类型介绍
assetUUID String资产的 asset_id
addressUUID String提现的 address_id,获取方式见下文
amountString提现的金额
traceUUID String本次提现的 trace_id
memoString可选,提现的备注信息。
address_id 获取方式
  1. 需要用户先授权 资产 权限,详情参见这里
  2. 通过服务端 sdk 里的方法拿到 address_id详情参见这里