検索

ホームページ  >  に質問  >  本文

ios10 - 关于iOS 10,跳转系统设置问题

iOS 10 更新以后,发现以前跳转系统应用的方法无效了。(已解决:参考 https://github.com/sushushu/i...)

-(void)toWIFI {
    
    NSURL *url = [NSURL URLWithString:@"prefs:root=WIFI"];

    if ([[UIApplication sharedApplication] canOpenURL:url]) {
        
        [[UIApplication sharedApplication] openURL:url]; // iOS 9 的跳转
        [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];// iOS 10 的跳转方式
    }
}

    

iOS 9的时候[[UIApplication sharedApplication] openURL:url]; 这个方法正常跳转,到了iOS 10的时候这个方法就不能用了。官方API如下:

- (BOOL)openURL:(NSURL*)url NS_DEPRECATED_IOS(2_0, 10_0, "Please use openURL:options:completionHandler: instead") NS_EXTENSION_UNAVAILABLE_IOS("");
- (BOOL)canOpenURL:(NSURL *)url NS_AVAILABLE_IOS(3_0);
    // Options are specified in the section below for openURL options. An empty options dictionary will result in the same
    // behavior as the older openURL call, aside from the fact that this is asynchronous and calls the completion handler rather
    // than returning a result.
    // The completion handler is called on the main queue.
    - (void)openURL:(NSURL*)url options:(NSDictionary<NSString *, id> *)options completionHandler:(void (^ __nullable)(BOOL success))completion NS_AVAILABLE_IOS(10_0) NS_EXTENSION_UNAVAILABLE_IOS("");  

请问我该如何使用新的API
- (void)openURL:(NSURL*)url options:(NSDictionary<NSString *, id> *)options completionHandler:(void (^ __nullable)(BOOL success))completion NS_AVAILABLE_IOS(10_0) NS_EXTENSION_UNAVAILABLE_IOS(""); 或者说这个options我该传什么进去(经测试,传空字典是没有用的)?

万分感谢。

天蓬老师天蓬老师2771日前444

全員に返信(10)返信します

  • PHPz

    PHPz2017-04-18 09:50:49

    諦めてください。iOS 10 ではシステム設定にジャンプすることはできません。

    返事
    0
  • 天蓬老师

    天蓬老师2017-04-18 09:50:49

    iOS10がジャンプしない問題について、実はiOSは非公開の方法を提供しています。監査は問題ですが、それを回避する方法を見つけることはできます。

    リーリー

    ASCII 値を使用してメソッドを組み立て、結合します。これによりレビューが回避されます。

    リーリー

    上記は Bluetooth インターフェースに入る方法です。他のページにジャンプすることもできます。設定ページは @"@"Prefs:root=TETHERING"、Wi-Fi は @"Prefs:root=WIFI" です。Prefs の P は大文字であることに注意してください。
    この方法で記述することには欠点もあります。 Apple の非公開メソッドは一度変更されます。

    返事
    0
  • PHP中文网

    PHP中文网2017-04-18 09:50:49

    アプリケーションの URL スキームを設定していません

    返事
    0
  • PHPz

    PHPz2017-04-18 09:50:49

    ios10 でこのように記述してください。グループの優秀な方が教えてくれました。
    [[UIApplicationsharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];

    返事
    0
  • 怪我咯

    怪我咯2017-04-18 09:50:49

    兄弟我知道了哈哈我刚刚找到解决方法

    プラグマ マーク -- openURL オプション --

    // openURL:options:CompletionHandler のオプション: URL を開くように設定されたアプリケーションが有効なユニバーサル リンクである場合のみ、URL を開きます
    // アプリケーションが設定されていない場合、またはユーザーがそのアプリケーションを使用して開くことができない場合NO
    UIKIT_EXTERN NSString *const UIApplicationOpenURLOptionUniversalLinksOnly NS_AVAILABLE_IOS(10_0);

    で呼び出されたリンク完了ハンドラー

    返事
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:50:49

    [[UIApplicationsharedApplication] openURL:url options:@{UIApplicationOpenURLOptionUniversalLinksOnly:@""} completedHandler:nil ];

    返事
    0
  • ringa_lee

    ringa_lee2017-04-18 09:50:49

    リーリー

    返事
    0
  • 怪我咯

    怪我咯2017-04-18 09:50:49

    同じ問題が発生しましたが、解決しましたか?

    返事
    0
  • 高洛峰

    高洛峰2017-04-18 09:50:49

    問題は解決しましたか?

    返事
    0
  • 大家讲道理

    大家讲道理2017-04-18 09:50:49

    投稿者に解決方法を聞いていただけますか?

    返事
    0
  • キャンセル返事