// 构建登录态URL
function handleEntyURL() {
// 1、对回跳URL进行encode:
const url = 'https://dingding.test.com';
const encodedComponent = encodeURIComponent(url);
// 2、在上一步基础上,添加固定前缀【http://auth.dingtalk.com/login?redirectUri=】:
const urlEncode = 'http://auth.dingtalk.com/login?redirectUri=' + encodedComponent
// 3、在上一步基础上,进行encode:
const urlEncodes = encodeURIComponent(urlEncode)
// 4、在上一步基础上,添加固定前缀【https://login.dingtalk.com/oauth2/auth?response_type=code&client_id=dingwa4tibze6jwz7mgv&scope=openid&state=dddd&redirect_uri=】:
// client_id为 Client ID (原 AppKey 和 SuiteKey) suitec9tguwldeqmhlbun
const entyURL = 'https://login.dingtalk.com/oauth2/auth?response_type=code&client_id=suitec4tguwldeqmhlbun&scope=openid&state=dddd&redirect_uri=' + urlEncodes
return entyURL
}
这个问题可能是由于手机浏览器和电脑浏览器对URL编码处理方式的不同导致的。以下是一些可能的解决方案:
检查URL编码:确保你在构造URL时正确地进行了编码。你可以在手机上复制这个URL,然后在一个在线URL解码工具中检查它是否被正确解码。
使用encodeURIComponent两次:在某些情况下,可能需要对URL进行两次encodeURIComponent编码。你可以尝试对整个最终URL再进行一次encodeURIComponent编码。
使用encodeURIComponent和encodeURI组合:尝试使用encodeURI对包含URL的字符串进行编码,然后再使用encodeURIComponent对整个字符串进行编码。
检查手机浏览器设置:确保手机浏览器没有阻止弹出窗口或者阻止第三方cookies,这些设置可能会影响到登录页面的正常显示。
测试不同的手机浏览器:有时候问题可能是由于特定手机浏览器的兼容性问题导致的,你可以尝试在其他手机浏览器上测试这个URL。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。