调用Telegram API发送带换行的草稿消息问题求助
Telegram网页分享链接的正确性与换行实现方案
一、链接调用方式的正确性
你使用的https://t.me/share/url?url=${data}是Telegram官方提供的网页端快捷分享链接,调用方式完全正确。这个链接的作用是唤起Telegram客户端(或网页版),并自动将url参数的内容填充为消息草稿,用户可直接选择发送对象。
二、实现消息换行的方法
直接在data中写\n或换行符无效,核心原因是URL中的特殊字符需要进行URL编码。换行符对应的URL编码为%0A,你可以通过以下两种方式实现:
方式1:手动替换换行符为%0A
如果是手动拼接字符串,直接将内容里的换行替换为%0A即可:
const data = "before%0Aafter"; const shareUrl = `https://t.me/share/url?url=${data}`;
生成的链接会让Telegram草稿内容自动分行:
before
after
方式2:用encodeURIComponent自动编码
更稳妥的方式是使用JS内置的encodeURIComponent方法对整个内容字符串编码,它会自动处理所有特殊字符(包括换行、空格、特殊符号等):
const content = `before after`; const encodedData = encodeURIComponent(content); const shareUrl = `https://t.me/share/url?url=${encodedData}`;
在JSX中可这样写:
const content = `before after`; const encodedData = encodeURIComponent(content); return ( <a href={`https://t.me/share/url?url=${encodedData}`}>share to telegram</a> );
这种方式既能解决换行问题,还能避免其他特殊字符导致的链接失效。
内容的提问来源于stack exchange,提问作者mahdi hadi
相关产品推荐
相关产品推荐

