我正在使用apple提供的网络扩展来开发vpn应用。为了实现自动VPN重新连接的功能,我使用了扩展程序的“按需连接”功能,因此,即使电话暂时没有网络,如果网络恢复,它也会自动重新连接到我的VPN服务器。
但是,当我的应用程序使用蜂巢式(4G)连接到vpn并尝试打开wifi时,我发现该应用程序一直在使用蜂巢式连接到vpn而不是使用wifi。连接到VPN时,我可以要求将蜂窝电话网络从WLAN切换到无线网络的方法吗?
某些网站说,在defaultPath
的{{1}}中添加观察者可以观察网络状态的变化,并添加以下代码以重新启动vpn隧道。这样手机可以使用wifi重新连接到我的VPN服务。
PacketTunnelProvider
但是,即使我使用上面的代码,当网络状态从蜂窝更改为wifi时,我的应用也无法重新启动vpn隧道。
希望任何人都可以回答我的问题。谢谢。
答案 0 :(得分:0)
您可以使用func cancelTunnelWithError(_ error: Error?)
停止隧道,
由于您还使用“按需连接” ,隧道将在下一个网络呼叫时自动建立。
要检测网络变化,可以使用 Rechibility 类