1

について質問があります

loadPreferencesWithCompletitionHandler

savePreferencesWithCompletitionHandlerNEVPNManager

この関数のブロックは、たとえばオンデマンド接続の確立時に呼び出されますか?

はいの場合、アプリがアクティブになるようにトリガーしますか?

いいえの場合、VPN 接続の前に準備が必要な場合はどうすればよいですか?

接続前に何らかのコールバックを設定できますか?

4

1 に答える 1

4

いいえ。このブロックの目的を誤解しています。

これらは、適切なアクション (vpn 構成のロードまたは保存) が完了すると呼び出され、操作が成功したかどうかを理解するのに役立つ NSError オブジェクトを提供します。

私が公式のドキュメントと実験から見つけた限り、あなたがやりたいことを達成するための公式の方法はありません(接続前にコールバックを設定します)。

ただし、NEVPNStatusDidChangeNotificationアプリがアクティブな間は、NEVPNManager を介して通知を購読し、接続ステータスを確認できます。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didChangeVpnStatus) name:NEVPNStatusDidChangeNotification object:nil];

および didChangeVpnStatus メソッド:

NEVPNManager * vpnManager = [NEVPNManager sharedManager];
switch (vpnManager.connectionStatus) {
    case NEVPNStatusInvalid:
        break;
    case NEVPNStatusDisconnected:
        break;
    case NEVPNStatusConnecting:
        break;
    case NEVPNStatusConnected:
        break;
    case NEVPNStatusReasserting:
        break;
    case NEVPNStatusDisconnecting:
        break;
}
于 2015-08-26T10:30:00.543 に答える