首页 > 解决方案 > IOS 限制对某些国家或 WLAN 的应用程序的访问

问题描述

我想开发一个仅在德国可用的应用程序。如果用户下载该应用程序并离开德国,它最好不再工作。这可能吗?
由于我只想知道用户当前所在的国家/地区,因此我不想询问整个位置。

此外,我想将某些内容限制在特定的 WLAN 网络中。我怎样才能做到这一点?

标签: ioslocalizationgeolocation

解决方案


您可以使用:

NSString *countryCode = [[NSLocale currentLocale] objectForKey: NSLocaleCountryCode];

获取用户的国家代码。德国的国家代码是 DE。

然后,您可以检查用户的国家/地区代码,如果不是 DE,则通过显示应用程序已锁定或类似内容的屏幕来锁定应用程序。

对于您问题的 WLAN 部分,您可以获得用户连接到的网络的名称:

此类将仅显示您连接到的 wifi 网络名称 -

    import UIKit
    import SystemConfiguration.CaptiveNetwork

    class ViewController: UIViewController {
    
        @IBOutlet weak var label: UILabel!
    
        override func viewDidLoad(){
            super.viewDidLoad()
            let ssid = self.getAllWiFiNameList()
            print("SSID: \(ssid)")
        }
        func getAllWiFiNameList() -> String? {
            var ssid: String?
            if let interfaces = CNCopySupportedInterfaces() as NSArray? {
            for interface in interfaces {
            if let interfaceInfo = CNCopyCurrentNetworkInfo(interface as! CFString) as NSDictionary? {
                        ssid = interfaceInfo[kCNNetworkInfoKeySSID as String] as? String
                        break
                    }
                }
            }
            return ssid
        }
    }

您可以检查该类是否不等于预设类以阻止某些功能。


推荐阅读