dingtalk-jsapi
Version:
钉钉 模块化 多端统一 API
1 lines • 1.85 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.shortcutCustomAdd=void 0;var env_1=require("../lib/env"),openLink_1=require("../api/biz/util/openLink"),otherApi_1=require("../lib/otherApi"),mobile_1=require("../entry/mobile"),dingtalkEnv=env_1.getENV(),lowerUA=env_1.getUA().toLocaleLowerCase(),iosShortcutServerUrl="https://h5.dingtalk.com/deskTopApp/index.html";exports.shortcutCustomAdd=function(e){if(e.appIcon&&e.appName&&(e.appUrl||e.scheme)){if(dingtalkEnv.platform===env_1.ENV_ENUM.ios){var r=/os [\d._]*/gi,o=lowerUA.match(r),n=(o+"").replace(/[^0-9|_.]/gi,"").replace(/_/gi,".");if(otherApi_1.compareVersion("10.0.0",n,!0)){var p="";return e.appUrl?p="dingtalk://dingtalkclient/action/jump?url="+encodeURIComponent(iosShortcutServerUrl+"?appName="+encodeURIComponent(e.appName)+"&appIcon="+encodeURIComponent(e.appIcon)+"&appUrl="+encodeURIComponent(e.appUrl)):e.scheme&&(p="dingtalk://dingtalkclient/action/jump?url="+encodeURIComponent(iosShortcutServerUrl+"?appName="+encodeURIComponent(e.appName)+"&appIcon="+encodeURIComponent(e.appIcon)+"&scheme="+encodeURIComponent(e.scheme))),openLink_1.default({url:p}),Promise.resolve({errorCode:"0"})}return Promise.reject({errorCode:"1",errorMessage:"ios 10以上的版本才支持该功能"})}if(dingtalkEnv.platform===env_1.ENV_ENUM.android){var t={name:e.appName,iconUrl:e.appIcon};return e.appUrl?t.webUrl=e.appUrl:e.scheme&&(t.jumpUrl=e.scheme),otherApi_1.compareVersion("5.0.15",dingtalkEnv.version,!0)?mobile_1._invoke("internal.shortcut.customAdd",t):Promise.reject({errorCode:"2",errorMessage:"安卓钉钉版本5.0.15以上支持该api"})}return Promise.reject({errorCode:"3",errorMessage:"需要运行在移动端钉钉ios和安卓容器内"})}return Promise.reject({errorCode:"4",errorMessage:"appIcon\b、appName、和(appUrl|scheme)为必填项"})};