目标:通过钉钉H5应用接入分享能力,分享到微信平台。
问题:微信Android平台可以实现卡片,iOS则会在消息发出瞬间从卡片转为链接。
结论:iOS比Android平台多了appId与URL的校验过程。
过程:
1、钉钉JS分享SDK本质上,使用的是微信分享NativeSDK进行,其中appId为钉钉企业主体,因此钉钉自有页面(URL:swform.dingtalk.com)分享都可以实现完美的卡片,因为此域名被配置在钉钉在微信的公众号JSSDK白名单里。
2、当JS分享的域名域名为非钉钉主体时,微信iOS会在分享完成后识别URL合法性,非钉钉主体则还原为链接。这也就是分享那一瞬间为卡片之后变为链接的奥秘。
3、我们可以在自己的钉钉H5应用中,将分享域名换为上述钉钉自有域名,则可以完美实现卡片能力。
因此,这个问题需要微信侧解决,解决办法有如下可能:
1、微信JSSDK白名单能力也支持ISV和接口能力,钉钉可以帮助H5开发者打通这个能力。
2、微信修复此能力,和Android策略保持一致。