Mixin 交互
用于与原生客户端进行交互的 api。
#
一、用户相关#
1. 弹框打开好友的介绍页const user_id = `uuid`;Mixin.openUserModal(user_id);
#
2. 打开某个聊天的会话页面const conversation_id = `uuid`;const user_id = `uuid`;Mixin.openConversation(conversation_id, user_id);
提示
- 如果是群组的话,可以不用传
user_id
。 - 非群组用户,当
conversation
还未创建时,会使用user_id
和点击链接用户的user_id
,创建一个conversation
。
#
3. 打开某个机器人的首页const app_id = 'uuid';Mixin.openAppHomePage(app_id, { foo: 'bar' });
提示
- 第一个参数 app_id 是机器人的 client_id 或者可以理解为 机器人的 user_id
- 第二个参数是 打开机器人首页时,可以在 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']);
提醒
- 支持多个 mp3 文件的播放,顺序播放。
- 需要 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_id | UUID String | 打开机器人的 client_id,用户打开链接之后,通过右上角三个点,可以直接打开机器人的介绍页弹框。 |
title | String | 标题 |
description | String | 描述信息 |
icon_url | String | 图标 |
action | String | 打开的链接 |
#
6. 分享一个直播/视频卡片const liveCard = { url: 'xxxx.m3u8', width: 300, height: 500, thumb_url: '',};Mixin.shareLiveToFriend(liveCard);
参数 | 类型 | 介绍 |
---|---|---|
url | UUID String | m3u8 的地址或者是 mp4 的地址 |
width | Number | 卡片的宽度 |
height | Number | 卡片的高度 |
thumb_url | String | 封面的图片地址,可以为空 |
#
三、支付相关#
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); // 无返回值
参数 | 类型 | 介绍 |
---|---|---|
asset | UUID String | 资产的 asset_id |
amount | String | 卡片的宽度 |
memo | String | 可选,卡片的高度 |
recipient | UUID String | 封面的图片地址,可以为空 |
trace | UUID 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});
提示
- 参数为
trace_id
或者snapshot_id
,二选一。两个都传的话,优先使用trace_id
。 - 只能本人查看于自己相关的交易详情,不能查看别人的。
#
4. 一键添加提现地址调用之后需要用户自行输入 6 位 PIN
码后才能完成添加。
const params = { asset: '', label: '', destination: '', tag: '',};Mixin.addAddress(params);
参数 | 类型 | 介绍 |
---|---|---|
asset | UUID String | 资产的 asset_id |
label | String | 给这个地址的备注信息 |
destination | String | 提现的地址 |
tag | String | 可选,但某些需要 memo 的链就必填了。 |
#
5. 一键删除提现地址调用之后需要用户自行输入 6 位 PIN
码后才能完成删除。
const params = { asset: '', address: '',};Mixin.deleteAddress(params);
参数解释见上一步。
#
6. 提现调用之后需要用户自行输入 6 位 PIN
码后才能完成提现。
const params = { asset: '', address: '', amount: '', memo: '', trace: '',};Mixin.deleteAddress(params);
参数 | 类型 | 介绍 |
---|---|---|
asset | UUID String | 资产的 asset_id |
address | UUID String | 提现的 address_id ,获取方式见下文 |
amount | String | 提现的金额 |
trace | UUID String | 本次提现的 trace_id 。 |
memo | String | 可选,提现的备注信息。 |