xcode 多个应用程序使用相同的URL方案- iOS

im9ewurl  于 2023-03-04  发布在  iOS
关注(0)|答案(4)|浏览(208)

我的新应用有一个URL方案,这样用户就可以从其他应用或网站启动我的应用...“myapp://”...那么,如果AppStore中有其他应用使用与我相同的URL方案,或者有人试图窃取我的URL方案,会发生什么情况?

a14dhokn

a14dhokn1#

如果两个应用程序注册了相同的自定义URL方案,则无法定义哪个应用程序将实际启动。其中一个应用程序将启动,但无法知道。
这里有一个真实的的问题。如果你的设备上有两个应用程序使用相同的URL方案,你删除了一个实际上得到启动,另一个将不会得到启动的URL没有重新启动iOS设备。
最好的解决方案是确保您的自定义URL方案不是微不足道的,这样其他应用使用相同方案的可能性就很小。

uemypmqf

uemypmqf2#

根据苹果的文档:
如果多个第三方应用程序注册来处理同一个URL方案,则未定义选择哪个应用程序来处理该类型的URL。
连续8年引用苹果文档中的准确内容:
注:如果多个第三方应用注册以处理同一URL方案,则当前没有用于确定将为哪个应用提供该方案的流程。
资料来源:

截至2019年9月,这部分文档已从苹果网站上移除,现在最密切相关的文档可能是Register Your URL Scheme

fjnneemd

fjnneemd3#

2016年更新

自2012年以来,苹果的政策发生了变化。如今,他们表示 * 不允许多个应用程序注册同一个方案 *。注册时比运行时更能解决争用问题,因为它避免了其他答案中讨论的安全问题。
注:如果多个第三方应用注册以处理同一URL方案,则当前没有用于确定将为哪个应用提供该方案的流程。
图片来源:https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW1

6mw9ycah

6mw9ycah4#

正如本主题中的其他答案所述,多个应用程序被注册为能够处理特定的自定义URL方案是完全可以接受的。如果设备上安装了2个以上的应用程序,这些应用程序被注册为能够处理特定的自定义URL方案,则系统在运行时将选择哪个应用程序是未定义的。
如果对于您的特定用例而言,您的应用(且仅您的应用)在设备上注册为能够处理特定URL非常重要,则首选universal links而非custom URL schemes。通用链接是标准HTTP或HTTPS链接。通用链接的大致概念是,在安装应用时,系统会检查存储在您的Web服务器上的文件,以验证您的网站是否允许您的应用代表其打开URL。如果打开此类URL时设备上未安装您的应用,系统会在Safari中正常打开该URL,让你的网站来处理。
有关通用链接和自定义URL方案的详细信息,请参阅Allowing Apps and Websites to Link to Your Content文档页面。

相关问题