微信内的 JSSDK 在加载页面时需要进行签名验证,以确保安全性。这个签名验证过程需要通过调用微信服务器接口获取相关信息来完成,包括页面 URL、随机字符串、时间戳等。
直接在微信聊天中发送链接打开页面时,JSSDK 需要获取当前页面的 URL,并进行签名验证。但由于在聊天中,微信会将链接包裹在一个特殊的微信打开链接的方式中,所以在获取 URL 时可能会存在限制或不准确的情况,从而导致无法正确完成签名验证。
而当在分享链接时,微信会将分享的链接直接打开在一个独立的浏览器中,而不是聊天窗口中的微信内置浏览器。在这种情况下,JSSDK 能够准确获取到分享链接的 URL,并进行签名验证,因此 JSSDK 在这种情况下可以正常工作。
因此,直接在微信聊天中打开 URL 可能无法正常使用 JSSDK,可以考虑其他方式,如通过菜单栏、公众号文章等分享链接给用户,让用户通过点击链接的方式打开页面,从而能够正常使用 JSSDK。