APP应用外跳转(不同App之间的跳转)
1.URL Scheme方式,具体见官方文档。
比如在iPhone的Safari浏览器上面输入如下的命令,会自动打开一些App:
// 打开邮箱
mailto://
// 打开短信
sms://
// 给110拨打电话
tel://110
只要在App的info.plist里面添加URL types - URL Schemes,如下图:
就可以在iPhone的Safari浏览器输入demoActive://实现跳转,打开我们的App。
关于其他一些常见的App,可以从iTunes里面下载到它的ipa文件,解压,显示包内容里面可以找到info.plist文件,打开它,在里面就可以相应的URL Scheme。比如
手机QQ mqq://
微信 weixin://
饿了么 eleme://
如果被唤醒的App运行流程大致如下图所示:
我们就可以通过调用application:openURL:sourceApplication:annotation:这个方法,来处理一些操作。
- 比如通过拿到链接中的参数去处理一些页面跳转
- 阻止一些App的随意调用,具体代码如下:
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation
{
NSLog(@"sourceApplication: %@", sourceApplication);
NSLog(@"URL scheme:%@", [url scheme]);
NSLog(@"URL query: %@", [url query]);
if ([sourceApplication isEqualToString:@"com.*****.*****"]){
// 允许打开
return YES;
}else{
return NO;
}
}
2. Universal Links方式
虽然在微信内部开网页会禁止所有的Scheme,但是iOS 9.0新增加了一项功能是Universal Links,使用这个功能可以使我们的App通过HTTP链接来启动App。
1.如果安装过App,不管在微信里面http链接还是在Safari浏览器,还是其他第三方浏览器,都可以打开App。
2.如果没有安装过App,就会打开网页。
具体设置需要3步:
1.App需要开启Associated Domains服务,并设置Domains,注意必须要applinks:开头。
2.域名必须要支持HTTPS。
3.上传内容是Json格式的文件,文件名为apple-app-site-association到自己域名的根目录下,或者.well-known目录下。iOS自动会去读取这个文件。具体的文件内容请查看官方文档。
App支持了Universal Links方式,那么可以在其他App里面直接跳转到我们自己的App里面。
在浏览器里面也是一样的效果,如果是支持了Universal Links方式,访问相应的URL,如果安装了应用会提示打开,没有安装会提示下载
以上就是iOS系统中App间跳转的两种方式。