如何在App中打开设置、appstore或其他App(区别iOS 10及之前系统)
题记:
“同样是搬砖,一个人觉得自己在砌一堵墙,另一人觉得自己在盖一座房,还有一个人认为自己在建造一座新的城市”;
-格局决定命运;
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 idNSURL * 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]); //trans360NSLog(@"URL query: %@", [url query]); //token=123abct®istered=1
return YES;
}
总结:
如何在App中打开设置、appstore或其他App(区别iOS 10及之前系统)相关推荐
- 如何在Android中打开/关闭相机LED /手电筒
在本教程中,我们向您展示如何在Android中打开/关闭手机摄像头或手电筒. 查看代码段: 1.开启 camera = Camera.open();Parameters p = camera.getP ...
- ubuntu 如何关闭离线模式_如何在macOS中打开或关闭Mac暗黑模式
苹果在macOS Mojave中为Mac引入了暗模式.暗模式是系统级别的设置,可与Mac随附的所有应用一起使用.第三方应用也可以选择使用暗黑模式.暗黑模式使您更轻松地专注于工作,并且对眼睛也很容易.装 ...
- android点击另一个app,Android 怎么从一个APP中打开另外一个APP
Android 如何从一个APP中打开另外一个APP 众所周知,在一个APP内部,从一个页面跳转到另外一个页面是使用startactivity函数来实现的. 同样的,对于应用之间的跳转也是如此的.应用 ...
- uniapp 微信小程序地图,在高德app、腾讯app、百度app、苹果地图app 中打开
一.效果: 点击图片一后,会跳转到图片二页面(无需自己写图片二页面,小程序会自动打开此页面) PS:示例图中(坐标)为"天安门".( <map> 可添加多个坐标点 ) ...
- 在自己的app中打开淘宝
需求:在app中打开淘宝客户端,包括打开店铺和商品 1)打开商品: Intent intent = new Intent(); intent.setAction("android.inten ...
- 如何在GlobalMapper中打开谷歌卫星地图
一.什么是Global Mapper Global Mapper 是一款地图绘制软件,不仅能够将数据(如谷歌地球高程数据)显示为光栅地图.高程地图.矢量地图,还可以对地图作编辑.转换.打印.记录GPS ...
- 如何在Win7中打开摄像头
Win7一问一答系列文章专门解答有关Win7的疑难问题,小到Win7主题.Win7桌面的应用文章,大到购买Win7.Win7安装等的长篇大论文章.力求用最简洁的语言回答初学者提出的问题,希望网友看到之 ...
- iptables 打开端口_如何在iptables中打开端口?
iptables 打开端口 How to open a port, say 3389, in iptables to allow incoming traffics to it? 如何在iptable ...
- android 代码 卸载app,Android在一个app中安装并卸载另一个app的示例代码
Android在一个app中安装并卸载另一个app 1.在app→src→main下新建文件夹asserts,将准备安装的apk文件放在asserts内 2.在app→src→main→res下新建文 ...
最新文章
- Matlab编程与数据类型 -- 内联函数
- SAP UI5 Simple form rendering
- IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习保护API
- linux识别科学计数法,Linux下科学计数法(e)转化为数字的方法 [shell中几种数字计算说明]...
- 程序员相亲竟然因为这个被拒绝了......
- 关于_MSC_VER的说明
- 基于jQuery UI CSS Framework开发Widget
- jq 改数组的k值_在JSON jq中修改键值数组
- 《on Java 中文版》读后感(《JAVA编程思想》的原作者)(JAVA 小虚竹)
- android监控io产生的应用,Android IO性能分析及排查
- cesium两种方式鼠标移入移出实体显示提示框
- Java中的四种Reference
- 一文搞懂ECU休眠唤醒之利器-TJA1145
- STDMETHOD介绍
- 就想和你上#床能咋地?【ZT】送给没GF的兄弟们
- Mp4 分割 怎么将mp4视频文件分割成几段
- linux 跳过overwrite确认
- 火神山秒建5G基站,“云监工”背后的是通信技术的极限挑战
- python中eps是什么意思_python怎么导出eps文件
- oracle判断字段是否包含某个字符串