簡體   English   中英

如何以編程方式在iOS 10上的Objective-C中打開WIFI設置

[英]How to programmatically open the WIFI settings in Objective-C on iOS 10

以下代碼在iOS 9上運行正常,請參閱帖子。 但它在iOS 10上不起作用。如何在iOS 10上以編程方式打開WIFI設置

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=WIFI"]];

相同的代碼應該可以使用,但是對於iOS 10,您需要通過向URL類型添加“prefs”來做一些額外的工作:

選擇目標后:

  • 導航到“信息”選項卡。
  • 滾動到底部后,您應該看到“URL類型”部分。
  • 添加一個新的(通過單擊加號按鈕)並使用“prefs”填充“URL Schemes”。

它應該類似於:

在此輸入圖像描述

現在,您的代碼應該可以正常工作。

更新:

如果如預期-somehow- 沒有工作,你可能想遵循這一解決辦法

希望有所幫助。

在iOS 10中,需要新的URL。 嘗試使用此代碼測試兩個網址:

NSArray* urlStrings = @[@"prefs:root=WIFI", @"App-Prefs:root=WIFI"];
for(NSString* urlString in urlStrings){
    NSURL* url = [NSURL URLWithString:urlString];
    if([[UIApplication sharedApplication] canOpenURL:url]){
        [[UIApplication sharedApplication] openURL:url];
        break;
    }
}

這適用於iOS 10,

轉到目標 - >(應用程序) - >信息 - > URL類型 - > +

URL Schemes

首選項

看圖像, 在此輸入圖像描述

然后添加以下代碼,

-(void)openWifiSettings{
    if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"prefs:root=WIFI"]]) {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=WIFI"]];
    } else {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"App-Prefs:root=WIFI"]];
    }
}

試試這個:

    if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]]) {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]options:[NSDictionary dictionary] completionHandler:^(BOOL success) {
        }];
    }

謝謝 :)

對於Swift:

let url = URL(string: "App-Prefs:root=WIFI")

    if UIApplication.shared.canOpenURL(url!){
        UIApplication.shared.openURL(url!)

    }

Swift 4.2,iOS 12

使用較新版本的iOS不再可能進行這種深度鏈接。 我的應用程序最近被拒絕使用:“ 非公共URL方案 ”,例如: prefs:root= 所以我要說不要浪費你的時間來做我們目前無法做的事情,只需打開設置即可。

這是我目前在我的應用程序中使用的功能:

extension UIApplication {

    ...

    @discardableResult
    static func openAppSetting() -> Bool {
        guard
            let settingsURL = URL(string: UIApplicationOpenSettingsURLString),
            UIApplication.shared.canOpenURL(settingsURL)
            else {
                return false
        }

        UIApplication.shared.open(settingsURL)
        return true
    }
}

用法: UIApplication.openAppSetting()

 let url=URL(string: "App-Prefs:root=WIFI")
// you can change root as your requirements 
        if UIApplication.shared.canOpenURL(url!)
        {
            UIApplication.shared.open(url!, options: [:], completionHandler: {success in

            })

        }
        else{
            UIApplication.shared.open(url!, options: [:], completionHandler: {success in

            })
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM