0.0.7 • Published 1 year ago
@tmsfe/tms-bridge v0.0.7
TMSBridge
小程序提供给插件的扩展(Object 实例)。在插件内通过 requireMiniProgram() 引入。
TMSBridge.bind(Object object)
绑定当前调用域。小程序与插件相互独立,navigateTo 依赖当前调用域。
参数
- wx
TMSBridge.navigateToMP(Object object)
从插件中跳转到小程序的指定页面。
参数
- Object object
属性 | 类型 | 必须 | 默认值 | 说明 |
---|---|---|---|---|
page | String | 是 | 无 | 需要跳转页面的名称 |
query | String | 否 | 无 | 需要跳转页面的参数 |
message | function | 否 | 无 | 用于页面的回传数据 |
complete | function | 否 | 无 | 跳转成功后的回调函数 |
object.message 回调函数
object.complete 回调函数
示例代码
插件页面 js 文件
Page({
data: {},
onLoad: function () {
const { TMSBridge } = requireMiniProgram(); // 引入小程序扩展能力
this.TMSBridge = TMSBridge.bind(wx); // 绑定当前调用域
},
navToH5: function(e) {
this.TMSBridge.navigateToMP({ // 跳转至小程序页面
page: 'sinanCovidIndex',
query: 'from=crgtHomePlugin',
});
},
});
TMSBridge.navigateToWebview(Object object)
插件跳转至H5某个页面。H5页面需要提前绑定业务域名。
参数
- Object object
属性 | 类型 | 必须 | 默认值 | 说明 |
---|---|---|---|---|
url | String | 是 | 无 | 请求的H5链接 |
disableShare | Boolean | 否 | true | H5链接是否能转发 |
title | String | 否 | 无 | H5链接的转发标题 |
imageUrl | String | 否 | 无 | H5链接的转发图片路径 |
navbarFrontColor | String | 否 | 无 | H5链接的导航栏前景颜色值,包括按钮、标题、状态栏的颜色,仅支持 #ffffff 和 #000000 |
navbarBackgroundColor | String | 否 | 无 | H5链接的导航栏背景颜色值,有效值为十六进制颜色 |
from | String | 否 | 无 | H5链接的来源 |
message | function | 否 | 无 | web-view 向小程序 postMessage 时接收消息 |
complete | function | 否 | 无 | 接口调用结束的回调函数(调用成功、失败都会执行) |
- object.message 回调函数 参数 Object data
属性 | 类型 | 说明 |
---|---|---|
data | array.<any> | 多次 postMessage 的参数组成的数组 |
示例代码
插件页面 js 文件
Page({
data: {},
onLoad: function () {
const { TMSBridge } = requireMiniProgram(); // 引入小程序扩展能力
this.TMSBridge = TMSBridge.bind(wx); // 绑定当前调用域
},
navToH5: function(e) {
this.TMSBridge.navigateToWebview({ // 跳转至H5页面
url: 'https://tai.qq.com/test.html',
message: ({ data }) => {
// console.log('on postMessage:', data)
},
});
},
});
TMSBridge.navigateToPlugin(Object object)
插件跳转至另一个插件页面。
参数
- Object object
属性 | 类型 | 必须 | 默认值 | 说明 |
---|---|---|---|---|
appId | String | 是 | 无 | 跳转的目标插件appId |
url | String | 是 | 无 | 跳转的目标页面和参数 |
complete | function | 否 | 无 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例代码
插件页面 js 文件
Page({
data: {},
onLoad: function () {
const { TMSBridge } = requireMiniProgram(); // 引入小程序扩展能力
this.TMSBridge = TMSBridge.bind(wx); // 绑定当前调用域
},
navToPlugin: function(e) {
this.TMSBridge.navigateToPlugin({ // 跳转至目标插件页面
appId: 'wxxxx',
url: '/inde?a=1&b=2',
});
},
});
TMSBridge.chooseAddress(Object object)
插件调用主程序获取地址信息。
参数
- Object object
属性 | 类型 | 必须 | 默认值 | 说明 |
---|---|---|---|---|
complete | function | 是 | 无 | 接口调用结束的回调函数(包含返回数据) |
- object.complete 回调函数
属性 | 类型 | 说明 |
---|---|---|
name | string | 收货人姓名 |
adCode | string | 邮编 |
address | string | 详细收货地址信息 |
phone | string | 收货人手机号码 |
region | array.<string> | 行政区划信息(如:"广东省", "深圳市", "南山区") |
errMsg | string | 错误信息(成功时为空字符串) |
示例代码
插件页面 js 文件
Page({
data: {},
onLoad: function () {
const { TMSBridge } = requireMiniProgram(); // 引入小程序扩展能力
this.TMSBridge = TMSBridge.bind(wx); // 绑定当前调用域
},
tapAddress: function(e) {
this.TMSBridge.chooseAddress({ // 获取地址信息
complete: (res) => {
// console.log("address", res);
// {"errMsg":"","name":"张三","phone":"13800138000",
// "adCode":"100180","region":["北京市","北京市","海淀区"],"address":"西北旺东路9号院"}
},
});
},
});
TMSBridge.choosePassenger(Object object)
插件调用主程序获取出行人信息。
参数
- Object object
属性 | 类型 | 必须 | 默认值 | 说明 |
---|---|---|---|---|
picktype | string | 否 | single | 选择方式:选择单个人 single, 选择多个人 multiple |
complete | function | 是 | 无 | 接口调用结束的回调函数(包含返回数据) |
- object.complete 回调函数
属性 | 类型 | 说明 |
---|---|---|
list | array.<object> | 选中的出行人列表 |
- Object list
属性 | 类型 | 说明 |
---|---|---|
name | string | 姓名 |
pinyin | array.<string> | 名字拼音(如:"ZHANG", "SAN") |
idnumber | string | 身份证号 |
mobile | string | 手机号,格式:国别码-电话号 |
示例代码
插件页面 js 文件
Page({
data: {},
onLoad: function () {
const { TMSBridge } = requireMiniProgram(); // 引入小程序扩展能力
this.TMSBridge = TMSBridge.bind(wx); // 绑定当前调用域
},
tapInput: function(e) {
this.TMSBridge.choosePassenger({ // 获取出行人信息
complete: ({ list }) => {
// console.log("passenger", list);
// [{"name":"张三","pinyin":["ZHANG","SAN"],"mobile":"86-13813881388","idnumber":"450702198809168886"}]
},
});
},
});