使用navigator.share()分享至Telegram/Slack文本丢失,求Wordle式解决方案
你遇到的问题是因为部分平台(比如Telegram、Slack)在navigator.share()同时传入text和url参数时,会优先解析并展示url,忽略独立的text内容。而Wordle的做法很简单——不单独传url参数,把链接直接嵌入到text的内容里,这样平台就会完整展示所有文本,同时自动识别里面的链接。
比如你可以把文本和链接合并成一个字符串,只传递text参数:
if (navigator.share) { // 把链接嵌入到文本末尾或合适位置 const shareContent = `${fullText}\n${url}`; navigator.share({ text: shareContent }) } else { navigator.clipboard.writeText(fullText); setCopied(true); }
另外,有些平台对title参数的支持也很有限,所以可以考虑只保留text参数,避免多余参数干扰平台的解析逻辑。测试下来,这种方式和Wordle的效果一致,Telegram会完整显示包含链接的文本内容,不会丢失文本部分。
内容的提问来源于stack exchange,提问作者Joseph Pasque
相关产品推荐
相关产品推荐

