如何在App中打开设置、appstore或其他App(区别iOS 10及之前系统)
2017-05-09 11:08
513 查看
题记:
“同样是搬砖,一个人觉得自己在砌一堵墙,另一人觉得自己在盖一座房,还有一个人认为自己在建造一座新的城市”;-格局决定命运;
Content:
首先提供一个系统版本判断的宏:
#define IOS10_OR_LATER ([[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion:(NSOperatingSystemVersion){.majorVersion = 10, .minorVersion = 0, .patchVersion = 0}])
打开设置:
iOS 10 before:NSString * string = [NSString stringWithFormat:@"prefs:roop=bundleInidentifier"]; NSURL * url = [NSURL URLWithString:string]; if ([[UIApplication sharedApplication] canOpenURL:url]) { if (IOS10_OR_LATER) { [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:^(BOOL success) { NSLog(@"success = %d",success); }]; }else{ [[UIApplication sharedApplication] openURL:url]; } }
iOS 10:
NSURL * url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; if ([[UIApplication sharedApplication] canOpenURL:url]) { if (IOS10_OR_LATER) { [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:^(BOOL success) { NSLog(@"success = %d",success); }]; }else{ [[UIApplication sharedApplication] openURL:url]; } }
打开AppStore指定app链接:
NSString * string = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/us/app/id%@",@"1178857170"];//app id NSURL * url = [NSURL URLWithString:string]; if ([[UIApplication sharedApplication] canOpenURL:url]) { if (IOS10_OR_LATER) { [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:^(BOOL success) { NSLog(@"success = %d",success); }]; }else{ [[UIApplication sharedApplication] openURL:url]; } }
打开另一个App:
AppA:我的一个项目 就叫Project;AppB:trans360;
从AppA跳转到AppB时:
首先,在AppB中添加URL Types:
URL Schemes:填“trans360”;
其次,在AppA中,info 中添加LSApplicationQueriesSchemes(Array)->Item0-String-trans360 ;
最后调用相应代码跳转即可:
NSURL *url = [NSURL URLWithString:@"trans360://@testPara"]; //注意“://”后面可以任意传参数。这些参数传过去后当跳到B时会在-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url 这个方法里实现。 if ([[UIApplication sharedApplication] canOpenURL:url]) { if (IOS10_OR_LATER) { [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:^(BOOL success) { NSLog(@"success = %d",success); }]; }else{ [[UIApplication sharedApplication] openURL:url]; } }
举个例子:
NSString *customURL = @"trans360://?token=123abct®istered=1";
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { NSLog(@"Calling Application Bundle ID: %@", sourceApplication); //name_trans360 NSLog(@"URL scheme:%@", [url scheme]); //trans360 NSLog(@"URL query: %@", [url query]); //token=123abct®istered=1 return YES; }
总结:
每次ios系统版本的更新 都会对应一部分api的变化 需要关注。相关文章推荐
- iOS之在自己的app里面如何打开其他app
- iOS如何设置一个只会在第一次打开app出现的视图(如登录页面)
- IOS10系统 app没有出现在系统设置-通知列表处理
- [ios] 如何调用其他app h5界面调用打开app
- iOS_从APP内跳转到系统WiFi设置界面在iOS 10以上不能跳转的问题
- 【iOS-Cocos2d游戏开发之七】在cocos2d中添加/删除系统组件,并解决View设置透明会影响View中的其他组件的问题!更新解决添加组件Cocos2d动画停止播放的BUG】
- 在ios设备没有网络的情况下,在app中如何弹出设置无线网络的提示框
- 如何解决多次打开CameraDshowApp.exe系统死机的问题(高分辨率camera)
- [iOS]如何向 appstore 查询已发布 APP 的信息?
- 在ios 设备没有网络的情况下在app中如何弹出设置无线网络的提示框
- IOS 开发,调用打电话,发短信,打开网址,调用其他app
- iOS 里面如何使用第三方应用程序打开自己的文件,调用wps其他应用打开当前应用里面的的ppt doc xls
- android如何打开系统wifi、蓝牙等设置界面
- iOS 7 如何关闭已打开的应用(App)