美文网首页
iOS11下跳转设置

iOS11下跳转设置

作者: 恃沐淇奥 | 来源:发表于2017-09-14 16:17 被阅读886次

    公司项目里需要从应用内跳转到设置的Wi-Fi界面。之前在网上找过各种iOS版本的跳转方法,总还是可行的。

    然而,升级iOS11后,所有的跳转URL均失效了,古哥一下(https://stackoverflow.com/questions/45316558/open-wifi-settings-by-using-openurl-with-param-app-prefsroot-wifi-do-not-work-i)、下载腾讯管家之类的跳转设置界面也都失效了。。。

    还有好笑的是:https://forums.developer.apple.com/thread/65007,苹果官方说要移除这些URL,底下跟进回复说要fire掉什么人,哈哈哈,让我笑一会。

    好了,言归正传。

    还是从私有API入手,之前iOS10跳转的时候用了LSApplicationWorkspace这个私有类。

    然后导出所有方法,其中发现一个叫做allInstalledApplications的方法。

    该方法获取了所有设备上安装的程序,用LSApplicationProxy类表示。

    SEL selector3 = NSSelectorFromString(@"allInstalledApplications");

    id URLs = ((id (*)(id, SEL))[workSapce methodForSelector:selector3])(workSapce, selector3);

    调用方法以后,得到了安装应用的数组,通过打印日志,发现了设置应用。

    得到了设置应用的bundleID:com.apple.Preferences。

    最后,调用openApplicationWithBundleID:方法,果然跳转到了设置界面:、

    SEL selector4 = NSSelectorFromString(@"openApplicationWithBundleID:");

    ((void (*)(id, SEL, NSString *))[workSapce methodForSelector:selector4])(workSapce, selector4, @"com.apple.Preferences");

    遗憾的是,目前还没有找到跳转到Wi-Fi设置界面的办法。

    后续继续研究。。。

    相关文章

      网友评论

          本文标题:iOS11下跳转设置

          本文链接:https://www.haomeiwen.com/subject/pzfjqttx.html