index.ts
980 Bytes
import * as dd from 'dingtalk-jsapi';
export const handleWindowOpen = (
strUrl: string,
strWindowName: string = '_blank',
strWindowFeatures?: string,
) => {
const isInDing = dd && dd?.env?.platform !== 'notInDingTalk';
const dingSearch =
localStorage.getItem('__DING_SEARCH__')?.replace('?', '&') || '';
const appendStr = `${
strWindowName !== '_self' ? 'ddtab=true' : ''
}${dingSearch}`;
if (!isInDing || strUrl.includes(appendStr)) {
console.log('handleWindowOpen-prevUrl', strUrl);
window.open(strUrl, strWindowName, strWindowFeatures);
return;
}
let newUrl: string = '';
if (strUrl.includes('#/')) {
const [prev, next] = strUrl.split('#/');
newUrl = `${prev}${prev.includes('?') ? '&' : '?'}${appendStr}#/${next}`;
} else {
newUrl = `${strUrl}${strUrl.includes('?') ? '&' : '?'}${appendStr}`;
}
console.log('handleWindowOpen-newUrl', newUrl);
window.open(newUrl, strWindowName, strWindowFeatures);
return;
};