在Gmail中使用URL Schema作为href值被移除问题的解决方法咨询
Gmail会出于安全与反滥用目的,过滤掉非HTTP/HTTPS协议的自定义URL Schema链接,以下是几个经过验证的解决思路:
中转页面跳转(最可靠)
把目标URL Schema链接放到一个HTTPS托管的中转页面中,邮件内只放置指向该中转页的标准HTTPS链接。用户点击中转页后,通过页面内的JavaScript自动跳转到Schema链接。示例中转页代码:<script> // 页面加载后自动跳转 window.onload = function() { window.location.href = "your-custom-schema://action?key=value"; }; </script>这种方式完全规避Gmail的协议过滤,因为邮件内的链接是标准HTTPS协议,兼容性拉满。
URL编码转义(部分场景有效)
对Schema链接进行URL编码后填入href属性,部分情况下Gmail不会识别为非标准协议而保留链接。示例代码:<a href="your-custom-schema%3A%2F%2Faction%3Fkey%3Dvalue">点击执行操作</a>注意:此方法有效性依赖Gmail当前的过滤规则,不保证长期可用。
Google Workspace专属:Apps Script代理跳转
若使用Google Workspace(原G Suite)账号发送邮件,可通过Google Apps Script创建一个Web App作为跳转代理。Web App接收参数后跳转到目标Schema链接,邮件内调用该Web App的HTTPS地址即可。降级方案:引导手动复制链接
若以上方法均不适用,可在邮件中以纯文本形式展示Schema链接,提示用户复制后粘贴到对应应用的地址栏打开。示例:请复制以下链接到指定应用打开:
your-custom-schema://action?key=value
需要明确的是,Gmail的链接过滤规则是黑盒且持续迭代的,没有能100%适配所有自定义Schema的万能方案,中转页面是目前稳定性最高的选择。
内容的提问来源于stack exchange,提问作者th3g3ntl3man

