iOS 唤起APP
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 唤起APP相关的知识,希望对你有一定的参考价值。
参考技术A 在ios 9之前,我们从外部启动App都是通过URL scheme的方式进行跳转,开发者通过配置info.plist文件中的 URL Types 可以轻松实现跳转,而且现在苹果还对这种跳转的方式加了一个提示框:“是否打开XXX”,跳转过程也显得不流畅。每一个项目里面都会有一个info.plist配置文件。找到info.plist,右键选择Add Row,然后选择URL types。添加URL Schemes
既然已经配置好URL Schemes,那么我们可以来款速测试一下,我们设置的URL Schemes是否有效。打开Safari,在地址栏里输入:iOSDevTip:// 即可唤起app
打开注册iOSDevTip的APP格式为: URL Scheme://URL identifier,直接调用URL Scheme也可打开程序, URL identifier是可选的。
而UniversalLink跳转方式可以实现无缝跳转,当浏览器识别到预先指定好的URL,就可以直接唤醒App,不需要在浏览器中打开再去点击其他按钮。只支持iOS 9以上
1.1 苹果开发者账号开启Associated Domains服务
1.2 在xcode工程的Capabilities -> Associated Domains中添加跳转域名
当我们的App在设备上第一次运行时,如果支持Associated Domains功能,那么iOS会自动去GET定义的Domain下的apple-app-site-association文件。
需要留意iOS会先请求 https://domain.com/.well-known/apple-app-site-association
如果此文件请求不到,再去请求 https://domain.com/apple-app-site-association 。 所以如果想要避免服务器接收过多GET请求,可以直接把apple-app-site-association放在./well-known/目录下。
ios外部链接或者app唤起自己的app
唤起自己的app,其实都是通过链接,关于这个需要了解下scheme,自己和调用方对接下协议,这里只是说明下到自己app指定页的问题
唤起自己的app分为两种情况
一.自己的app已经启动,那么唤起自己的app,就会直接走handleOpenURL(这个方法有3个,自行百度3个方法存在的时期),在这个方法里可以分发到指定页,这个没啥好说的,重点在第二种情况;
二.自己的app没启动,会先走didFinishLaunchingWithOptions,然后再走handleOpenURL,如果你的页面有广告的话,很可能因为广告结束之后,重新回到tabbar首页
(一般都是这个逻辑),那么你的分发到指定页面就会被替换,所以解决方法就是:
//外部链接唤起本app,app没启动走这个方法时
NSURL *url=[launchOptions objectForKey:UIApplicationLaunchOptionsURLKey];
if (url) {//存在url 链接证明是外部唤起的
self.outsideURL=url;
}
在didFinishLaunchingWithOptions里,写上上面的方法,以此来判断,当广告结束后,可以根据上面保存的url来判断不跳回到tabbar首页(这个是我们的app逻辑,如果其他人不是,可以自己再做判断)。甚至可以直接在上线的方法里直接跳转
以上是关于iOS 唤起APP的主要内容,如果未能解决你的问题,请参考以下文章