export function checkDingtalkEnvironment() { const authSource = window.localStorage.getItem('auth_source') let isDingTalk = false if (authSource && authSource === 'dingtalk' && isInDingTalk()) { isDingTalk = true } if (isDingTalk) { let dd: any = null import('dingtalk-jsapi').then((module) => { dd = module.default window.$dd = dd const nonceStr = '1234567890' // 必填,自定义固定字符串。 const timeStamp = new Date().getTime() // 必填,生成签名的时间戳 try { window.$http .post(window.$vueApp.config.globalProperties.baseAPI + '/component/dingtalk/jsticket-sign', { nonceStr: nonceStr, // 必填,自定义固定字符串。 timeStamp: timeStamp, // 必填,生成签名的时间戳 url: window.location.href // 必填,当前页面的url }) .then((response: any) => { dd.config({ agentId: response.agentId, // 必填,授权应用的agentid corpId: response.corpId, //必填,企业ID timeStamp: timeStamp, // 必填,生成签名的时间戳 nonceStr: nonceStr, // 必填,自定义固定字符串。 signature: response.signature, // 必填,签名 type: 0, //选填。0表示微应用的jsapi,1表示服务窗的jsapi;不填默认为0。该参数从dingtalk.js的0.8.3版本开始支持 jsApiList: ['biz.util.chooseImage', 'biz.util.scan'] // 必填,需要使用的jsapi列表,注意:不要带dd。 }) dd.error(function (err) { window.$dd = null console.error('dd error: ' + JSON.stringify(err)) }) }) } catch (e) { window.$dd = null console.error('DingTalk SDK initialization failed: ', e) } }) } } export function isInDingTalk() { const ua = navigator.userAgent.toLowerCase() return ua.includes('dingtalk') }