如何创建有效的 URL 以在 swift 中打开 RDP (Microsoft)

How to create valid URL to open RDP (Microsoft) in swift

提问人:mywac Milan 提问时间:10/23/2023 更新时间:10/23/2023 访问量:49

问:

嗨,我在更新到 iOS 17 和 MacOS 14 后面临问题。我不能再打开了 RDP (Microsoft) 客户端来自 swift 中的 url

我有网址:

let urlString = "rdp://full%20address=s:\(serverURL))&audiomode=i:2&disable%20themes=i:1&username=s:\(userName)"
if let validURL = URL(string:urlString) { 
     NSWorkspace.shared.open(validUR)
}

在低于 17 的 iOS 中,它工作正常。似乎解析机制有问题

:

我尝试用 %3A 编码:但它不起作用。 有人可以指导我错过什么或做错了什么吗?

谢谢.

swift 网址 rdp

评论

0赞 Larme 10/23/2023
确实发生了变化。请参阅 developer.apple.com/documentation/foundation/url/3126806-init 但我不知道解决方案,可能需要阅读更多相关信息。百分比也逃脱了吗?如果您尝试使用 URLComponents 创建 URL,该怎么办?serverURL
0赞 mywac Milan 10/23/2023
是的,我确实尝试使用 URLComponents 和相同的结果 (nil),我也尝试对服务器用户名进行编码。仍然没有成功
0赞 benc 10/27/2023
你有基本/最小示例 URL 吗?您可能需要对最复杂的版本进行故障排除。如果你认为它是第一个“:”,你可以尝试设置URL方案,然后通过框架的其他部分将URL的其余部分放入其中吗?rdp:

答:

1赞 Alnitak 10/23/2023 #1

如果我将所有实例替换为 macOS 14,它对我有用::%3a

import Foundation
import AppKit

let s = "rdp://full%20address=s%3a192.168.1.26&username=s%3aAdministrator"
if let u = URL(string: s) {
  NSWorkspace.shared.open(u)
}