v2rayN-HY2 导出分享链接至剪贴板 显示分享二维码

总功能列表在这篇分析里.

我们现在实现第 8 项 导出分享链接至剪贴板

打开主窗口 .cs 文件的设计器

找到菜单项, 双击, 
打开菜单项 "导出分享URL至剪贴板" 的响应函数

走读代码, 一路 F12 跳进去, 直到 GetVmessQRCode 函数. 这里就是生成分享URL的地方.
很明显, 函数名称没有及时更新, 还叫 Vmess 

Hy2 分享链接的格式有官方定义.
示例:
hysteria2://密码@服务器IP域名:端口?insecure=跳过证书验证#备注
我们照着 VLESS 的逻辑抄一遍. 没有encryption参数, 所以去掉.

继续跳进 GetStdTransport 函数. 这里面是处理 streamSettings 结构中的数据.
我们添加 hy2 的处理.

跑起来测试一下.
能复制出分享URL了. 但是里面多了一些参数.
hysteria2://7c6c918f-6e80-3283-9cf0-a8d34e80f86e@104.168.128.251:2053?security=tls&type=hysteria2&insecure=1#HY2-104.168.128.251
security 和 type 参数在 hy2 的官方定义中是不应该出现的.

所以我们改一下, 不要调用 GetStdTransport 函数了, 直接在 GetVmessQRCode 函数中, 把 insecure 参数填充了就算了.

测试一下, 分享的URL正常.
生成的二维码用 Shadowrocket 扫一下, 也能正常使用.


========
开了一个分支, 本文的修改内容已提交.
如果你有兴趣, 可以看到整个的开发过程.

评论

The Hot3 in Last 30 Days