开发者社区> 问答> 正文

dd.config在android手机和ios手机表现不一致问题。ios正常而android报错

已解决

同一个项目,在android手机和ios手机打开,进行dd.config鉴权,android手机会报签名校验失败,而ios手机不会。具体流程如下:
场景介绍:Vue2项目,使用的时history模式路由;有A入口页面,B业务页面,进入A入口页面之后会自动跳转到B业务页面,在B业务页面进行dd.config鉴权。
鉴权流程
1、使用B页面url,使用官方提供的算法生成签名,配合鉴权所需其他数据,在B页面进行dd.config鉴权。
2、在ios手机中鉴权成功;在android手机中提示签名校验失败,所打印的报错信息中,url属性为A入口页面的url(我进行鉴权和生成鉴权签名的页面都是B业务页面)

在官方文档中没有查到关于此问题的解释。请问有大佬知道这个情况是否正常吗

展开
收起
三水巷 2023-09-06 11:20:11 119 0
3 条回答
写回答
取消 提交回答
  • 采纳回答

    在安卓端确实有此问题存在,因为安卓端容器不支持。解决办法是使用父页面路由进行鉴权,以此问题为例,父页面就是入口页面

    2023-09-06 16:23:05
    赞同 展开评论 打赏
  • 全栈JAVA领域创作者

    这个问题可能是由于dd.config在不同平台上的实现方式不同导致的。在Android平台上,dd.config使用的是入口页面的url,而在iOS平台上,dd.config使用的是当前页面的url。这是因为在Android平台上,dd.config会在应用启动时获取入口页面的url,而在iOS平台上,dd.config会在当前页面被加载时获取当前页面的url。
    这个问题并不是必现的,它取决于dd.config在不同平台上的实现方式。如果您遇到了这个问题,可以尝试在dd.config中使用统一的url,或者在应用中使用其他的鉴权方式。如果问题仍然存在,您可以尝试联系dd.config的技术支持,获取更多帮助。

    2023-09-06 12:48:20
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    根据您描述的情况,同一个项目在Android手机和iOS手机上使用dd.config鉴权时表现不一致,Android手机报签名校验失败,而iOS手机正常。

    这种情况下可能存在以下问题或考虑因素:

    1. 签名算法实现:请确保在B业务页面中生成签名的算法和参数与官方文档提供的要求一致。检查一下签名算法的实现是否正确,并且确认所用的参数在两个平台上是相同的。

    2. URL跳转问题:您提到在A入口页面后自动跳转到B业务页面进行鉴权。如果在URL跳转过程中有重定向或其他变化,可能会导致传递给B页面的URL不一致。请确保跳转后的URL与预期一致,以便在B页面进行正确的鉴权。

    3. Android WebView配置:如果您在Android上使用WebView来加载Vue项目,可能需要检查WebView的相关配置。例如,确保WebView启用JavaScript执行、设置合适的UserAgent等。

    4. 客户端版本差异:不同平台上的客户端版本可能存在差异,特别是钉钉客户端的更新频率较快。可能存在某个特定版本的Android客户端对签名校验的处理方式有差异,导致报错。建议在不同的Android手机上尝试不同版本的钉钉客户端,看是否有差异。

    2023-09-06 12:43:14
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
问答排行榜
最热
最新

相关电子书

更多
手淘iOS性能优化探索 立即下载
From Java/Android to Swift iOS 立即下载
深入剖析iOS性能优化 立即下载