政务钉钉 H5项目PC端手机端同步调试(前端)
·
可能写的有些乱,大家包含
后端给了我一个代理啥的,重定向路由。

根据自己电脑打开 windows_64文件,cmd运行 .\ding.exe -config=.\ding.cfg -subdomain=ip(根据后台给的来) 端口(80,根据自己项目启动的端口来)
运行成功后是这样的
这里启动好以后就需要去前端配置了
由于pc和手机 登录返回值不一样
点击专有钉钉
浏览器头部是这样的
拿到auth_code 后用于请求接口
pc接口返回值:
手机端返回值
这里可以看到手机返回值和pc返回值不一样,手机上是code。
拿到code后,请求接口
手机接口返回值:
这一步是在路由里截取url参数的
先看一下项目结构
再看一下处理代码
分为pc端处理和手机端处理
pc端处理:
手机处理:
方法代码:
// 导航守卫,渲染动态路由
router.beforeEach(async (to, from, next) => {
console.log(to);
console.log(from);
var str = JSON.stringify(to)
if (to.path == "/") {
let codeObj;
let browerType = getBrowerType()
if (browerType == 'pc') {
const { auth_code } = to.query;
if (auth_code) {
const params = {
grantType: "zwdd",
authCode: auth_code
}
const result = await AvoidLoginApi(params)
console.log('result',result)
const { code, msg, data } = result
setToken(data.token);
localStorage.setItem("SET_USERRES", data.refreshToken);
localStorage.setItem("SET_USERID", data.userId);
// document.cookie = "Admin-Token=" + data.token
if (code == -10) {
Dialog.alert({
message: msg
}).then(() => {
next({ path: '/login' })
NProgress.done()
})
} else if (code == 40010) {
const { openid } = result.extra
Dialog.alert({
message: msg
}).then(() => {
next({ path: '/login?openid=' + openid })
NProgress.done()
})
} else {
next({ path: '/ZHpaishui' })
}
} else {
next();
}
} else {
dd.getAuthCode({}).then((result) => {
if (result) {
console.log(JSON.stringify(result));
let gouzei = JSON.stringify(result)
// alert(JSON.stringify(gouzei))
const { code } = result
// alert(JSON.stringify(code))
const params = {
grantType: "zwdd",
authCode: code
}
return new Promise((resolve, reject) => {
AvoidLoginApi(params)
.then(res => {
const { code, msg, data } = res
// alert(JSON.stringify(res))
if (code == -10) {
Dialog.alert({
message: msg
}).then(() => {
next({ path: '/login' })
NProgress.done()
})
} else if (code == 40010) {
const { openid } = data.extra
Dialog.alert({
message: msg
}).then(() => {
next({ path: '/login?openid=' + openid })
NProgress.done()
})
} else {
// next()
next({ path: '/ZHpaishui' })
}
})
.catch(error => {
reject(error);
});
});
}
})
next();
}
} else {
next();
}
})
dd.getAuthCode 是钉钉内部方法,可以参考管网 浙政钉-H5&小程序应用采集开发手册
AvoidLoginApi 是登录请求方法
setToken 是把token存浏览器的方法
暂时可以分享的就这么多吧。
小伙伴们如果有想线上讨论的可以进QQ群(687706476)
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)