引入组件
引入 dingtalk-jsapi 组件,此jsApi支持运行于 android, ios, pc,钉钉小程序环境,且保持开发体验一致。
组件地址:https://www.npmjs.com/package/dingtalk-jsapi
1、使用 npm 命令安装 dingtalk-jsapi
在 uni-app 项目的根目录
,执行 npm 命令:
npm install dingtalk-jsapi --save
2、在 vue 文件 引入 dingtalk-jsapi
import * as dd from 'dingtalk-jsapi'; // 整体调用
// import 'dingtalk-jsapi/entry/mobile'; // 只引入移动端(支持小程序)
// import 'dingtalk-jsapi/entry/union'; // 如果你想要在此代码在PC端和移动端都执行,那你可以如此引入
3、获取微应用免登授权码
文档地址:https://ding-doc.dingtalk.com/doc#/dev/ep7bpq
使用以下代码获取免登授权码(调用此api不需要进行鉴权,即不需要进行dd.config)。获取的免登授权码有效期5分钟,且只能使用一次,请查看获取免登授权码API。
dd.ready(function() {
dd.runtime.permission.requestAuthCode({
corpId: _config.corpId, // 企业id
onSuccess: function (info) {
code = info.code // 通过该免登授权码可以获取用户身份
}
});
});
3、最终伪代码如下:
<script>
import * as dd from 'dingtalk-jsapi'; // 整体调用
export default {
data() {
return {
}
},
onLoad() {
// 如果需要调免登录之外的其他API则需要配置下面的config
dd.config({
agentId: '', // 必填,微应用ID
corpId: '',//必填,企业ID
timeStamp: new Date().getTime(), // 必填,生成签名的时间戳
nonceStr: '', // 必填,生成签名的随机串
signature: '', // 必填,签名
type:0/1, //选填,0表示微应用的jsapi,1表示服务窗的jsapi,不填默认为0。该参数从dingtalk.js的0.8.3版本开始支持
jsApiList:[
'runtime.info',
'biz.contact.choose',
'device.notification.confirm',
'device.notification.alert',
'device.notification.prompt',
'biz.ding.post',
'biz.util.openLink',
],
});
// 自动登录
// #ifdef MP-WEIXIN
//this.loginThirdpaty("weixin");
// #endif
// #ifdef MP-ALIPAY && MP-DINGTALK
//this.loginThirdpaty("dingtalk");
// #endif
},
methods: {
// 第三方平台登录
loginThirdpaty(provider){
var that = this
// 钉钉登录
if('dingtalk' == provider ){
that.loadModal = true;
console.log(dd,'res')
if (dd.env.platform!=="notInDingTalk") {
//进行钉钉登录操作
dd.ready(function() {
dd.runtime.permission.requestAuthCode({
corpId: '',//必填,企业ID
onSuccess: function(result) {
console.log(result)
},
onFail : function(err) {
console.log(err,'wee')
}
});
});
return false
}
}
else if('weixin' == provider ){
that.loadModal = true;
uni.login({
provider:'weixin',
success(loginRes) {
let js_code = loginRes.code;
// 和后台进行交互完成免登录
that.loadModal = false;
},
fail:function(err){
that.loadModal = false;
}
})
}
}
}
}
</script>
作者:Jeebiz 创建时间:2023-02-25 01:30
最后编辑:Jeebiz 更新时间:2023-02-25 01:45
最后编辑:Jeebiz 更新时间:2023-02-25 01:45