目录
createOpenDataFrame 参数说明ww-open-app-manage-button支持外部服务应用通过ww-open-app-manage-button开放模板组件跳转应用及权限详情页
在初始化阶段,页面需要调用 @wecom/jssdk 提供的 ww.register 接口初始化应用信息:
ww.register({
corpId, // 必填,企业微信的corpid,必须与当前登录的企业一致
agentId, // 必填,自建应用id 或 企业授权了第三方应用或代开发应用后的应用id (e.g. 1000247)
jsApiList,
async getAgentConfigSignature() {
// 获取并返回 agentConfig 签名信息
}
})
// 企业信息组件需要确保 WWOpenData 初始化成功
await ww.initOpenData();
初始化完成后,创建“展示组件工厂”对象备用:
const factory = ww.createOpenDataFrameFactory()
在需要展示企业数据时,调用 factory.createOpenDataFrame 函数创建展示组件,下面以会话展示组件为例:
const msgList = [
{
msgid, // 消息 ID
secretKey // 消息密钥
}
]
const instance = factory.createOpenDataFrame({
el: containerElement, // “容器”元素,用于挂载展示组件
template: `
<view class="content">
<ww-open-app-manage-button
class="app-manage-button"
page="{{data.pageType}}"
binderror="onOpenError"
>
点击打开应用管理详情页
</ww-open-app-manage-button>
</view>
`,
style: `
.content {
height: 100%;
overflow: auto;
}
`,
data: {
msgList
},
methods: {
onOpenError(err) {
console.error(err)
}
}
})
createOpenDataFrame 参数说明组件容器,可以是实际的 DOM 元素或 CSS 选择器字符串。
组件自定义数据,可以在模板中访问。
组件模板,用于自定义组件内的展示内容。语法参考 WXML。目前支持以下组件:
组件模板样式表,语法是 CSS 的子集,目前仅支持以下语法:
@media@supports@font-face@page@keyframes@counter-style其他限制
ww- 开头的类名为企业微信预留,无法修改样式span.example错误回调。
调起模态框回调,当用户点击需要预览的消息时触发。开发者可以根据场景手动创建预览 iframe 展示消息内容。
在企业微信内置浏览器环境下,展示组件默认会打开新窗口展示消息内容。
参数
返回
当返回 false 时表示阻止展示组件处理预览事件。
示例代码
/**
* 创建 modal iframe、设置 src 并添加到 document.body
*/
handleModal({ modalUrl, modalSize }) {
const iframe = document.createElement('iframe')
iframe.src = modalUrl
iframe.className = 'modal'
if (modalSize?.width && modalSize?.height) {
// 按需动态设置预览窗口的大小
iframe.style.width = `${width}px`
iframe.style.height = `${height}px`
}
document.body.appendChild(iframe)
}
视图挂载成功后的回调。
视图更新成功后的回调。
更新组件自定义数据,支持通过对象路径设置深层数据:
instance.setData({
key: 'value',
'data.path["computed member"][1]': 'deepValue'
})
/**
* result:
*
* {
* key: 'value',
* data: {
* path: {
* 'computed member': [
* ,
* 'deepValue'
* ]
* }
* }
* }
*/
ww-open-app-manage-button支持跳转应用及权限详情页
参数说明
| 参数 | 类型 | 默认值 | 必填 | 说明 |
|---|---|---|---|---|
| page | string | app_detail | 否 | app_detail: 应用管理详情页;permission: 应用权限详情页;datazone_permission: 数据与智能专区权限二次授权页;customer_acquisition_permission: 获客接口权限二次授权页; |
模板示例
<ww-open-app-manage-button
class="app-manage-button"
page="{{data.pageType}}"
binderror="onOpenError"
>
点击打开应用管理详情页
</ww-open-app-manage-button>
模板组件有统一的错误事件回调方式 binderror,通过监听错误事件,开发者可以判断组件的工作状态。
示例代码
<ww-open-app-manage-button binderror="onOpenError" />
factory.createOpenDataFrame({
...
methods: {
...
onOpenError(event) {
console.warn('open message error: ', event);
},
},
});
增强 scroll-view 实例,可以通过 ww.createScrollViewContext 接口获取。
方法
ScrollViewContext.scrollTo(options: { top?: number; left?: number })
滚动至指定位置。
options 参数说明:top:垂直位置,单位:像素;left:水平位置,单位:像素;
ScrollViewContext.scrollIntoView(selector: string, options?: { block?: string; inline?: string })
滚动至指定位置。
options 参数说明:block:定义垂直方向的对齐,可选值有:start | center | end | nearest;inline:定义水平方向的对齐,可选值有:start | center | end | nearest;
示例代码
<scroll-view ref="refName">...</scroll-view>
const scrollViewContext = await ww.createScrollViewContext(instance, 'refName')
scrollViewContext.scrollTo({ top: 100 })
用户在使用过程中,常见的异常状态为 “当前登录态过期”,此时需要服务商引导用户重新进行扫码登录。
“登录态异常”的出现时机以及对应特征如下:
使用 ww-xxx 组件过程,登录态失效出错
错误事件会在 ww-xxx 组件的 binderror 回调中返回,有如下错误特征:
@wecom/jssdk 更新至 v2.1.0ww-open-app-manage-button 组件以及使用说明