iOS自定义URL方案XCode
首先,我知道如何在iOS中制作自定义方案,我知道如何使用
javascript setTimeout方法从网站打开我的应用程序.
我有一个使用自定义URL方案的应用程序,它工作得很好.它的作用是,它向联系人列表中的其他用户发送了一条http://testsite.com/QueryStrings消息(预定义),并在点击短信中的那些网络链接时,会发生以下情况: >打开Safari中的链接 实际上我想要的是直接从短信打开我的应用程序,如果安装,但我必须在短信中发送我的自定义网址方案,这不是一个选项,因为如果没有安装应用程序,那么这个短信不会工作所以一个网络链接是现在唯一的选择. 今天,我安装了SoundCloud,不小心注意到这个东西是http:// m. soundcloud .com / … url是通过短信发送的,点击链接后,它会直接打开应用程序(如果已安装),而不是Safari(对我来说很奇怪). 所以我想知道如何在不打开Safari的情况下从Web链接打开他们的应用程序.我用Google搜索,但我无法找到解决问题的方法.我也从我的手机上附上了一个截图,按住消息应用程序中的链接,也可以在“SoundCloud”选项中打开.那么SoundCloud如何注册一个http链接,以便在应用程序中自动处理.请帮帮我们 Screenshot of SoundCloud Open 解决方法
这个问题的答案是使用Associated Domains(但在9.2之后我们必须使用Universal Links来实现这一点).
在Universal Links之前,在安装应用程序时打开应用程序的主要机制是尝试在Safari中重定向到应用程序的URI方案(在应用程序的PLIST中注册).这将路由逻辑放在Safari中,但无法检查应用程序是否已安装. iOS 9 Universal Links旨在解决此问题.单击链接时,iOS将首先检查是否已为与该链接关联的域注册了Universal Link,然后检查是否已安装相应的应用程序,而不是首先打开Safari.如果当前安装了该应用,则会打开该应用.如果不是,Safari将打开并加载http(s)链接. 从功能上讲,它允许您拥有一个链接,可以打开您的应用程序或打开您的移动网站. 配置您的应用以注册已批准的域 >在developers.apple.com上注册您的应用程序 配置您的网站以托管’apple-app-site-association’文件 >购买域名或从现有域名中挑选 Apple在iOS 9.0中推出了Universal Links,它将应用程序路由移动到操作系统中,这样开发人员就不必担心在Javascript中进行路由. 在应用程序中接收通用链接URL URI方案通过App Delegate中的openUrl接收深层链接URL. Universal Links通过不同的代码路径接收数据:continueUserActivity.这种新的委托方法用于许多应用程序转换,从Spotlight到Universal Links,并且可能会在未来的OS版本中看到更多用例. 下面是一段代码,您可以使用它来检索打开应用程序的完整通用链接URL. - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *))restorationHandler { if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) { NSString *myUrl = [userActivity.webpageURL absoluteString]; // parse URL string or access query params } return YES; } 资料来源:https://blog.branch.io/how-to-setup-universal-links-to-deep-link-on-apple-ios-9 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |