iOS开发应用外跳转

APP应用外跳转(不同App之间的跳转)

1.URL Scheme方式,具体见官方文档。

比如在iPhone的Safari浏览器上面输入如下的命令,会自动打开一些App:

// 打开邮箱
mailto://
// 打开短信
sms://
// 给110拨打电话
tel://110

只要在App的info.plist里面添加URL types - URL Schemes,如下图:

iOS开发应用外跳转_第1张图片
plist写法.png

就可以在iPhone的Safari浏览器输入demoActive://实现跳转,打开我们的App。
关于其他一些常见的App,可以从iTunes里面下载到它的ipa文件,解压,显示包内容里面可以找到info.plist文件,打开它,在里面就可以相应的URL Scheme。比如
手机QQ mqq://
微信 weixin://
饿了么 eleme://

如果被唤醒的App运行流程大致如下图所示:


iOS开发应用外跳转_第2张图片
应用被唤醒运行流程.png
我们就可以通过调用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:开头。
iOS开发应用外跳转_第3张图片
image.png
2.域名必须要支持HTTPS。
3.上传内容是Json格式的文件,文件名为apple-app-site-association到自己域名的根目录下,或者.well-known目录下。iOS自动会去读取这个文件。具体的文件内容请查看官方文档。
iOS开发应用外跳转_第4张图片
1194012-2d1b91f5fcb619cd.png

App支持了Universal Links方式,那么可以在其他App里面直接跳转到我们自己的App里面。
在浏览器里面也是一样的效果,如果是支持了Universal Links方式,访问相应的URL,如果安装了应用会提示打开,没有安装会提示下载

以上就是iOS系统中App间跳转的两种方式。

你可能感兴趣的:(iOS开发应用外跳转)