現在、iOS 11 以降のネットワーク拡張 API を使用して、単純なパケット トンネル拡張機能を実装しています。アプリのみの VPN にして、アプリからのトラフィックを VPN とプロキシ経由でトンネリングできるようにしたいと考えています。だから、私の質問は
- ユーザーが他のアプリに切り替えるときにトンネリングを停止する方法 - 1 つのオプションは、アプリのデリゲート メソッド
-(void)applicationWillResignActive:(UIApplication *)application
または-(void)applicationDidEnterBackground:(UIApplication *)application
. - ユーザーが強制終了によってアプリを直接終了した場合、VPN もオフにする必要が
-(void)applicationWillTerminate:(UIApplication *)application
あります。 - アプリがクラッシュしたときに同じケースを処理するために実装するもの。- 回避策として、アプリがアクティブな場合、パケット トンネル拡張機能によってアクセスされる共有データを ping または更新し続けるピンポン メカニズムのようなものを実装することを考えていました。そのため、アプリが停止または終了した場合、Tunnel はアプリの非アクティブを認識し、トンネリングを自動的に停止します。
- VPN トンネリングをアクティブに保つには、トークンを定期的に更新する必要があるため、VPN 設定を更新し、トンネルを再起動 (停止して再起動) せずにすぐに変更を反映する方法はありますか。
上記のシナリオに対する適切な解決策または回避策を提案してください。それは私にとって大きな助けになるでしょう。