startVPNTunnel 不会抛出错误
startVPNTunnel not throws errors
我正在调用 startVPNTunnel(),然后在 PacketTunnelProvider class 中执行 completionBlock,但出现错误。
对 startVPNTunnel() 的调用在 try-catch 块内,但似乎没有什么可捕获的。
我只想提醒用户连接是否成功。
其他人能够发现这些错误吗?
相关代码很简单:
do {
try vpnManager!.connection.startVPNTunnel()
}
catch {
NSLog("roee: Failed to start vpn: \(error)")
}
在 PacketTunnelProvider 里面:
let error = NSError(domain: NEVPNErrorDomain, code: NEVPNError.ConfigurationInvalid.rawValue, userInfo: nil)
PacketTunnelProvider.pendingStartCompletionHandler!(error)
PacketTunnelProvider.pendingStartCompletionHandler = nil
我相信 startVPNTunnel
与 OS 交谈并让它知道需要启动 VPN。
OS 将对 VPN 配置进行一些检查,并立即 return 肯定结果(如果配置正确)或错误(如果有问题)。如果 returned 出现错误,则此 API 将抛出。
但是,您的网络扩展将在 startVPNTunnel
returned 之后启动。
所以你不能那样交流。
您可以注册 NSNotification.Name.NEVPNStatusDidChange
以查看 VPN 状态变化。
我正在调用 startVPNTunnel(),然后在 PacketTunnelProvider class 中执行 completionBlock,但出现错误。 对 startVPNTunnel() 的调用在 try-catch 块内,但似乎没有什么可捕获的。 我只想提醒用户连接是否成功。 其他人能够发现这些错误吗?
相关代码很简单:
do {
try vpnManager!.connection.startVPNTunnel()
}
catch {
NSLog("roee: Failed to start vpn: \(error)")
}
在 PacketTunnelProvider 里面:
let error = NSError(domain: NEVPNErrorDomain, code: NEVPNError.ConfigurationInvalid.rawValue, userInfo: nil)
PacketTunnelProvider.pendingStartCompletionHandler!(error)
PacketTunnelProvider.pendingStartCompletionHandler = nil
我相信 startVPNTunnel
与 OS 交谈并让它知道需要启动 VPN。
OS 将对 VPN 配置进行一些检查,并立即 return 肯定结果(如果配置正确)或错误(如果有问题)。如果 returned 出现错误,则此 API 将抛出。
但是,您的网络扩展将在 startVPNTunnel
returned 之后启动。
所以你不能那样交流。
您可以注册 NSNotification.Name.NEVPNStatusDidChange
以查看 VPN 状态变化。