接口调用
1.x版本不再维护
1. 判断是否在京麦PC版客户端内部
var isInJMPC = JmJsBridgePC.isInJMPC();
返回结果为true表示在京麦PC客户端内部。
2. 判断是否在京麦Mac版客户端内部
var isInJMMac = JmJsBridgePC.isInJMMac();
返回结果为true表示在京麦Mac客户端内部。
3. 判断是否安装了京麦客户端(Windows)
JmJsBridgePC.JMClient.checkJMClient(function(isInstall) {
// 回调函数
});
在回调函数中返回是否安装客户端的标志,如果返回结果为true,则表示安装了京麦客户端。
该接口只适用于 Windows 版本的京麦客户端,Mac 版本不支持该接口。
后面的接口基本都调用了这个接口,做了客户端是否安装的判定。
示例
JmJsBridgePC.JMClient.checkJMClient(function(isInstall) {
isInstall ? alert('安装了京麦客户端') : alert('没有安装京麦客户端')
});
4. 启动京麦客户端
JmJsBridgePC.openJM({
pin: '' // 登录用户pin,openJM 可以不传入参数
});
唤起客户端在 Windows 版和 Mac 版是两个不同的交互流程:
- Windows 版:会弹出唤起京麦客户端的 loading 窗口。如果安装了京麦客户端,在京麦客户端被启动时,loading 窗口会自动关闭;如果未安装京麦客户端,在加载 4 s后判定本机未安装京麦客户端,关闭loading窗口,并弹出未安装京麦客户端的弹窗,提示用户安装京麦客户端。
- Mac 版:如果安装了京麦客户端,会弹窗提示是否打开京麦客户端;如果未安装京麦客户端,则接口调用无效,没有任何反应。
示例
// 不传入用户PIN
JmJsBridgePC.openJM();
// 传入用户PIN
JmJsBridgePC.openJM({
pin: 'test_pop_7191'
});
5. 打开链接
JmJsBridgePC.openUrl({
pin: '', // 登录用户pin
url: '' // 链接地址
});
这个接口需要传入用户PIN,需要登录了京麦客户端才可以打开链接。
示例
JmJsBridgePC.openUrl({
pin: 'test_pop_7191',
url: 'https://jm.jd.com'
});
6. 打开插件
在客户端登录的时候,客户端会拉取一次用户的插件列表,只有在插件列表中的插件才可以打开。如果用户新订购了一个插件,或者续费了过期插件,则需要刷新插件列表再打开。
JmJsBridgePC.openPlugin({
pin: '', // 登录用户pin
serviceCode: '' // 服务标识
}, canRefresh) // canRefresh为true,则刷新插件列表
打开插件时会首先打开一个中间页,然后在中间页唤醒京麦客户端并打开插件。
示例
// 不刷新插件列表,打开插件
JmJsBridgePC.openPlugin({
pin: 'test_pop_7191',
serviceCode: 'FW_GOODS-549217'
}, false)
// 刷新插件列表,再打开插件
JmJsBridgePC.openPlugin({
pin: 'test_pop_7191',
serviceCode: 'FW_GOODS-549217'
}, true)
7. 刷新插件列表(只能在客户端内部使用)
JmJsBridgePC.updatePlugin();
8. 启动咚咚
JmJsBridgePC.openDD({
pin: '', // 登录的用户PIN
client: '' // 咚咚对话的用户PIN,一般为买家PIN,可以不传
})
一般用于打开咚咚聊天窗口。
示例
// 无咚咚对话的用户PIN
JmJsBridgePC.openDD({
pin: 'test_pop_7191'
})
// 有咚咚对话的用户PIN
JmJsBridgePC.openDD({
pin: 'test_pop_7191',
client: 'test_pop_deleteman'
})
9. 打开指定页面
京麦客户端(PC版)从7.7.0
版本开始支持打开插件指定页面。
9.1. 接入流程
使用京麦打开插件指定页面,需要遵循京麦的插件打开协议。
ISV 插件添加打开指定页面支持
在打开插件时,京麦客户端在插件的回调地址(老版本插件叫启动地址)上拼接一个 pageId
参数,ISV在其插件首页获取这个 pageId
参数,根据约定好的规则由插件开发者重定向到指定页面。如果 pageId
为空,则不做任何跳转。
回调地址参数拼接示例:https://example.com/index.html?pageId=detail
。
每个 pageId
需要由京麦生成唯一匹配的 protocolId
,供JSSDK接口调用方调用。
pageId
生成唯一匹配的protocolId
需要ISV发送邮件到fengyuan1@jd.com
或者yangqi9@jd.com
,在邮件只中写明插件名称,页面功能场景以及页面功能场景对应的pageId,由京麦进行生成匹配。
JSSDK 接口调用“打开指定页面”功能
该接口的调用方一般是京东商家研发,ISV只需要关心其插件是否配置了可以跳转到指定页面的
pageId
以及有其对应的唯一标识protocolId
。
JmJsBridgePC.openPlugin({
pin: '', // 登录用户pin
serviceCode: '', // 服务标识
protocolId: '' // 指定页面的标识
}, canRefresh) // canRefresh为true,则刷新插件列表
打开插件指定页面示例:
JmJsBridgePC.openPlugin({
pin: 'test_pop_7191',
serviceCode: 'FW_GOODS-549217',
protocolId: '62db14ed537e406f8f704205cf34d92c'
}, false)