iOS11下跳转设置

2017-09-14  本文已影响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设置界面的办法。

后续继续研究。。。

上一篇下一篇

猜你喜欢

热点阅读