分享网页内容到twitter需求背景该公司为数百万用户提供年报数据。因为不想更新APP版本,所以决定以web的形式在APP中展示,一键分享到twitter。同时分享到twitter的内容需要生成twitter卡片,卡片内容是动态生成的;它以图片的形式分享。如何分享技术研究根据twitter-for-websites的资料,分享到twitter是通过链接跳转的方式进行的。但是过去携带的内容只能是字符串。如果携带的字符串中包含合法的URL,twitter就会开始分析这个地址指向的页面内容,生成一张卡片。生成规则根据twitter-for-websites下的卡片入门信息,卡片生成规则是识别页面head标签中的特殊meta配置。例如:元twiiter识别的配置必须是静态的,也就是说用js动态创建的标签是无效的。需求边界卡识别的图片是动态的,动态内容主要是从网页到图片的生成,最后到一个动态的html结构。如何处理图片需要格外注意:在时间和预算充足的情况下,可以根据用户活动的先后顺序,为一定数量的用户提前生成好的图片。最后,将大量图片放在购买的云存储服务上。在条件有限的情况下,按需生成图片需要考虑服务器的负载。为了提高读取速度,服务器的存储是否足够缓解存储压力,服务器的运行内存是否足够开发调试,建议配合vercel验证生成的效果,以及将vercel分配的域名粘贴到twiiter中。但需要注意的是,一旦twitter识别出从域名地址生成卡片的配置,就会生成一个强缓存。只有当地址发生变化时才会重新识别,所以可以在每次验证的时候给域名加上一个参数。具体实现Webshare点击此链接跳转到twitter,并识别url字段中的字符并自动弹出如果将form作为webview嵌入到app中,而手机上安装了twitter,跳转时会自动打开twitter并在url字段中填写字符。如果只是填表不做卡识别,建议使用上面的textfieldServerurl字段需要指向服务器渲染的一个html页面,内容还是动态的。以Express为例exportconstshareTwitter:RequestHandler=async(req,res)=>{consturl='';//点击Twitter卡片时跳转到的URLconstimage='';//卡片识别的图片URLres.send(`