收藏
回答

企业微信open-data官方demo在企业微信pc客户端内置浏览器不支持?

(async () => {
            try {
                console.info('WWOpenData demo start')
                if (/MicroMessenger/i.test(navigator.userAgent)) {
                    await config(window.configParams)
                }
                await agentConfig(window.agentConfigParams)
                // 若一切正常,此时可以在 window 上看到 WWOpenData 对象
                console.info('window.WWOpenData', window.WWOpenData)
                if (WWOpenData.checkSession) {
                    WWOpenData.checkSession({
                        success() {
                            console.info('open-data 登录态校验成功')
                        },
                        fail() {
                            console.error('open-data 登录态过期')
                        },
                    })
                }
                if (WWOpenData.on) {
                    /**
                     * ww-open-data 元素数据发生变更时触发
                     */
                    WWOpenData.on('update', event => {
                        const openid = event.detail.element.getAttribute('openid')
                        console.info('渲染数据发生变更', openid, event.detail.hasData)
                    })
                    /**
                     * ww-open-data 获取数据失败时触发
                     */
                    WWOpenData.on('error', () => {
                        console.error('获取数据失败')
                    })
                }
                /**
                 * 创建 ww-open-data 元素
                 */
                const container = document.getElementById('container')
                // 这里的 window.openidList 是该 demo 页面自行组织的数据,不具备普遍性
                // 开发者进行开发时,需要自己拿到授权企业相对应的 openid
                // 关于 openid 的定义与获得方式,可以关注文档注意事项的第 5 点
                for (const openid of window.openidList) {
                    const element = document.createElement('ww-open-data')
                    element.setAttribute('type', 'userName')
                    element.setAttribute('openid', openid)
                    container.appendChild(element)
                }
                /**
                 * 绑定 document 上全部的 ww-open-data 元素
                 */
                WWOpenData.bindAll(document.querySelectorAll('ww-open-data'))
                console.info('WWOpenData demo end')
            } catch (error) {
                console.error('WWOpenData demo error', error)
            }
            /**
             * 调用 wx.config
             *
             * @see https://open.work.weixin.qq.com/api/doc/90001/90144/90547
             */
            async function config(config) {
                return new Promise((resolve, reject) => {
                    console.info('wx.config', config)
                    wx.config(config)
                    wx.ready(resolve)
                    wx.error(reject)
                }).then(() => {
                    console.info('wx.ready')
                }, error => {
                    console.error('wx.error', error)
                    throw error
                })
            }
            /**
             * 调用 wx.agentConfig
             *
             * @see https://open.work.weixin.qq.com/api/doc/90001/90144/90548
             */
            async function agentConfig(config) {
                return new Promise((success, fail) => {
                    console.info('wx.agentConfig', config)
                    wx.agentConfig({ ...config, success, fail })
                }).then(res => {
                    console.info('wx.agentConfig success', res)
                    return res
                }, error => {
                    console.error('wx.agentConfig fail', error)
                    throw error
                })
            }
        })()


这里用到的async await语法在pc客户端直接报错了,有没有什么解决方案?

回答关注问题邀请回答
收藏

1 个回答

  • undefined
    undefined
    03-19

    你需要把代码转换成es5的语法

    03-19
    赞同
    回复
登录 后发表内容
问题标签